方法一:使用比较函数
```c
include
// 返回最大值
int compare1(int a, int b) {
return a > b ? a : b;
}
// 返回最小值
int compare2(int a, int b) {
return a < b ? a : b;
}
int main() {
int a, b, c;
int max = 0; // 3个数中的最大值
int min = 0; // 3个数中的最小值
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
max = compare1(compare1(a, b), c);
min = compare2(compare2(a, b), c);
printf("\n其中最大值是 max=%d, 最小值 min=%d\n", max, min);
return 0;
}
```
方法二:使用嵌套if语句
```c
include
int main() {
int a, b, c, max, min;
printf("请输入三个数:\n");
scanf("%d%d%d", &a, &b, &c);
// 求最大值
if (a > b) {
if (a > c)
max = a;
else
max = c;
} else {
if (b > c)
max = b;
else
max = c;
}
// 求最小值
if (a < b) {
if (a < c)
min = a;
else
min = c;
} else {
if (b < c)
min = b;
else
min = c;
}
printf("最大值: %d\n最小值: %d\n", max, min);
return 0;
}
```
方法三:使用循环
```c
include
int main() {
int a, b, c, min, max;
printf("请输入三个数:\n");
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最小值: %d\n", max, min);
return 0;
}
```
方法四:使用指针
```c
include
int getmax(int *p, int n) {
int i, max_p;
max_p = p;
for (i = 1; i < n; i++) {
if (p[i] > max_p)
max_p = p[i];
}
return max_p;
}
int main() {
int a, b, c;
int *p;
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
p = &a;
printf("最大值: %d\n", getmax(p, 3));
p = &b;
printf("最大值: %d\n", getmax(p, 3));
p = &c;
printf("最大值: %d\n", getmax(p, 3));
return 0;
}
```
这些方法都可以实现求三个数的最大值和最小值。你可以根据自己的需求和编程习惯选择合适的方法。