C语言 三个数比大小 按照大小顺序排列 如何用max min这种做 if我感觉条件太多了,还有什么方法
时间: 2024-10-19 14:05:09 浏览: 54
在C语言中,如果你想按照大小对三个数进行排序并打印出来,通常的做法是先比较两个数找出最大值和最小值,然后再将剩余的一个数与已知的最大值或最小值进行比较,确定最终的顺序。如果觉得if条件过多,可以考虑使用循环结构来简化过程,比如使用嵌套循环或者三元运算符(ternary operator)。
下面是一个简单的示例,使用for循环和三元运算符:
```c
#include <stdio.h>
void sortThreeNumbers(int a, int b, int c) {
int max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
int min = (a < b) ? ((a < c) ? a : c) : ((b < c) ? b : c);
printf("%d is the smallest, %d is the largest.\n", min, max);
if (min == a) {
printf("Smallest number: %d\n", a);
} else if (min == b) {
printf("Smallest number: %d\n", b);
} else {
printf("Smallest number: %d\n", c);
}
if (max == a) {
printf("Largest number: %d\n", a);
} else if (max == b) {
printf("Largest number: %d\n", b);
} else {
printf("Largest number: %d\n", c);
}
}
int main() {
int num1, num2, num3;
printf("Enter three numbers: ");
scanf("%d%d%d", &num1, &num2, &num3);
sortThreeNumbers(num1, num2, num3);
return 0;
}
```
在这个例子中,首先找到最大的和最小的数,然后依次打印这两个数值及其对应的位置。虽然看起来还是有三个if条件,但实际上只根据变量`min`和`max`进行了判断,而不是每个数都单独检查。
阅读全文