设计完整的程序实现以下功能:从键盘上输入3个整数,通过指针运算,找出3个数中的最大值与最小值和它们的地址,并实现最大值与最小值的交换(要求用指针作为函数参数处理)。 输入格式: "%d%d%d" 输出格式: "输入的三个数是%d,%d,%d\n" "最大数是%d,最小数是%d\n" "交换后的三个数是%d,%d,%d\n"
时间: 2023-10-09 16:11:14 浏览: 78
(完整word)C语言程序设计100个经典例子.doc
以下是实现该功能的程序代码:
```c
#include <stdio.h>
void findMaxMin(int *a, int *b, int *c, int **maxPtr, int **minPtr) {
if (*a > *b) {
if (*a > *c) {
*maxPtr = a;
if (*b > *c) {
*minPtr = &(*c);
} else {
*minPtr = &(*b);
}
} else {
*maxPtr = c;
*minPtr = &(*b);
}
} else {
if (*b > *c) {
*maxPtr = b;
if (*a > *c) {
*minPtr = &(*c);
} else {
*minPtr = &(*a);
}
} else {
*maxPtr = c;
*minPtr = &(*a);
}
}
}
void swap(int **aPtr, int **bPtr) {
int *tempPtr = *aPtr;
*aPtr = *bPtr;
*bPtr = tempPtr;
}
int main() {
int a, b, c;
printf("请输入三个整数:\n");
scanf("%d%d%d", &a, &b, &c);
printf("输入的三个数是%d,%d,%d\n", a, b, c);
int *maxPtr, *minPtr;
findMaxMin(&a, &b, &c, &maxPtr, &minPtr);
printf("最大数是%d,最小数是%d\n", *maxPtr, *minPtr);
swap(&maxPtr, &minPtr);
printf("交换后的三个数是%d,%d,%d\n", a, b, c);
return 0;
}
```
程序运行示例:
```
请输入三个整数:
5 3 7
输入的三个数是5,3,7
最大数是7,最小数是3
交换后的三个数是7,3,5
```
阅读全文