|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main(void)
{
int a,b,c;
int m;
scanf("%d %d %d",&a,&b,&c);
m =a>b?a>c?a:c:b>c?b:c; // m = a>b?(a>c?a:c):(b>c?b:c)
printf("%d\n",m);
return 0;
}
这个程序中 m = a>b?(a>c?a:c):(b>c?b:c) 如果a>b 为真 执行a>c?语句 如果a>c?为真 输出a 可是无法判断b和c的大小
当我输入2 1.5 1 时输出结果为45 请问也是这个问题嘛
m = a > b ? (a > c ? a : c) : (b > c ? b : c) 如果 a > b 为真,执行 a > c ? 语句,如果 a > c ? 为真,输出 a,如果 a > c ? 为假,输出 c ;
m = a > b ? (a > c ? a : c) : (b > c ? b : c) 如果 a > b 为假,执行 b > c ? 语句,如果 b > c ? 为真,输出 b,如果 b > c ? 为假,输出 c ;
这条语句的目的就是选出 a、b、c 三个中最大的那个,然后输出,至于不是最大的另外两个数谁大谁小,是无所谓的
|
|