不知道你要的是比较大小后输出最大值还是按降序输出 输出最大值: #include void main() { int a,b,c,Max; scanf("%d %d %d",&a,&b,&c); if (a <= b) Max = b; else Max = a; if (Max <= c) printf("%d",c); else printf("%d",Max); } 输入三个数(空格隔开),先比较前两个数大小,将较大的数赋值给Max,再比较Max与第三个数大小,输出较大的数 按降序输出: #include void main() { int a,b,c,max_ab,min_ab; scanf("%d %d %d",&a,&b,&c); if (a<=b) { max_ab = b; min_ab = a; } else { max_ab = a; min_ab = b; } if (max_ab <= c) printf("%d %d %d",c,max_ab,min_ab); else if (max_ab > c && c >min_ab) printf("%d %d %d",max_ab,c,min_ab); else if (max_ab > c && c <=min_ab) printf("%d %d %d",max_ab,min_ab,c); } 输入三个数,判断前两个数,将大的数赋值给max_ab,小的数赋值给min_ab,再将max_ab与c作比较。若c大于等于max_ab,则输出c,max_ab,min_ab.若c小于max_ab且大于min_ab,则输出max_ab,c,min_ab.若c小于min_ab,则输出max_ab,min_ab,c