不管是if还是else还是else if都是条件判断,不过是用法不同其实是一个意思。
if后面跟表达式,你看上面每一个if后面都跟了个表达式吧,例如if(a>c),而else后面就不需要跟表达式,你看上面哪个else 后面跟表达式了,else if跟if相同不过就是需要跟在if后面,if...else if,而不能else if......if,说白了就是if和else if一样不过是要分个先后。
#include
int mian(void) {
int a, b, c, max;
printf("请输入三个整数:");
scanf("%d, %d, %d", &a, &b, &c);
if (a > b) {
if(b > c) // 在 a > b 的前提下,满足 b > c,a一定是最大的
max = a;
else if(a > c) // 在 a > b的前提下,满足 a > c,a一定是最大的
max = a;
else // 在 a > b的前提下,满足 c >= b,c >= a,所以c是最大的
max = c;
}
else {
if(a > c) // 在 b >= a的前提下,又有a > c,此时b一定是最大的
max = b;
else if(b > c) // 在 b >= a的前提下,又有 b > c,此时b一定是最大的
max = b;
else // 在 b >= a的前提下,又有 c >= a,c >= b,所以c是最大的
max = c;
}
printf("max = %d\n", max);
return 0;
}
其实,这个代码可以简化。
int Max(int a, int b) {
return ((a > b) ? a : b);
}
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d" &a, &b, &c);
printf("max = %d\n", Max(Max(a,b),c));
return 0;
}
这个就是简单的逻辑,三个数中找最大值。