一个关于三目运算符的问题
#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 三个中最大的那个,然后输出,至于不是最大的另外两个数谁大谁小,是无所谓的
页:
[1]