在C语言中,求三个数的最大值和最小值可以通过多种方法实现。以下是几种常见的方法:
方法一:使用条件语句
```c
include
int main() {
int a, b, c, min, max;
printf("请输入三个数: ");
scanf("%d %d %d", &a, &b, &c);
min = a;
if (b < min) min = b;
if (c < min) min = c;
max = a;
if (b > max) max = b;
if (c > max) max = c;
printf("最小值是: %d\n", min);
printf("最大值是: %d\n", max);
return 0;
}
```
方法二:使用三元运算符
```c
include
int main() {
int a, b, c, min, max;
printf("请输入三个数: ");
scanf("%d %d %d", &a, &b, &c);
min = (a < b) ? ((a < c) ? a : c) : ((b < c) ? b : c);
max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
printf("最小值是: %d\n", min);
printf("最大值是: %d\n", max);
return 0;
}
```
方法三:使用函数
```c
include
// 函数声明
int findMax(int a, int b, int c);
int findMin(int a, int b, int c);
int main() {
int a, b, c;
printf("请输入三个数: ");
scanf("%d %d %d", &a, &b, &c);
int max = findMax(a, b, c);
int min = findMin(a, b, c);
printf("最小值是: %d\n", min);
printf("最大值是: %d\n", max);
return 0;
}
// 函数定义
int findMax(int a, int b, int c) {
return (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
}
int findMin(int a, int b, int c) {
return (a < b) ? ((a < c) ? a : c) : ((b < c) ? b : c);
}
```
方法四:使用数组和循环
```c
include
int main() {
int a, b, c, max, min;
printf("请输入三个数: ");
scanf("%d %d %d", &a, &b, &c);
int numbers = {a, b, c};
max = numbers;
min = numbers;
for (int i = 1; i < 3; i++) {
if (numbers[i] > max) max = numbers[i];
if (numbers[i] < min) min = numbers[i];
}
printf("最小值是: %d\n", min);
printf("最大值是: %d\n", max);
return 0;
}
```
方法五:使用C99的`fmax`函数
```c
include include int main() { double a, b, c, max, min; printf("请输入三个数: "); scanf("%lf %lf %lf", &a, &b, &c); max = fmax(fmax(a, b), c); min = fmin(fmin(a, b), c); printf("最小值是: %lf\n", min); printf("最大值是: %lf\n", max); return 0; } ``` 以上方法都可以有效地求出三个数的最大值和最小值。你可以根据自己的需求和习惯选择合适的方法。