所以我只是想写一个C代码来比较数字,三个数字中哪个最大,哪个最小。
然后我发现我可以使用三元运算符(例如:x < y ? num1 : num2),
所以我认为是的,这可以工作,然后我编写了以下代码:
#include <stdio.h>
int main(){
int num1, num2, num3, largest, smallest;
printf("Enter three integers: ");
scanf("%d %d %d", &num1, &num2, &num3);
//largest among three integers.
largest = num1 > num2 ? (num1 > num3 ? num1 : num3) : (num2 > num3 ? num2 : num3);
printf("\nThe largest among the three is: %d", largest);
//smallest among three integers
smallest = num1 < num2 ? (num1 < num3 ? num1 : num3) : (num2 < num3 ? num2 : num3);
printf("\nThe smallest among the three is: %d", smallest);
return 0;
}
所以,如果我给出像 num1 = 10、num2 = 20 和 num3 = 30 这样的输入,那么输出是
Enter three integers: 10 20 30
The largest among the three is: 30
The smallest among the three is: 10
但是当所有这些数字都相等时会发生什么?三元运算符的条件是真还是假?
Enter three integers: 20 20 20
The largest among the three is: 20
The smallest among the three is: 20
我不知道条件是什么,但程序运行正常,输出正确。
我在最新的 Windows 10 和 gcc.exe (MinGW.org GCC-6.3.0-1) 6.3.0 上使用它
如果这是一个蹩脚的问题,我很抱歉,但我没有找到任何相关信息。