用函数和指针完成下述程序功能:有两个整数 m 和 n,由用户输入 1,2 或 3。如输入 1, 程序就给出 m 和 n 中大者,输入 2,就给出 m 和 n 中小者,输入 3,则求 m 与 n 之和。 【设计要求】 (1) 自定义函数中的形参为指针类型; (2) 主函数中输出相关数据,调用自定义函数,实现相应的操作要求。
时间: 2023-06-27 14:02:01 浏览: 203
C语言数据输入与输出实例详解
以下是代码实现:
```c
#include <stdio.h>
void max(int *a, int *b); // 指针参数类型为 int*
void min(int *a, int *b);
void sum(int *a, int *b);
int main() {
int m, n, choice;
printf("请输入两个整数 m 和 n:");
scanf("%d%d", &m, &n);
printf("请输入要进行的操作:\n1.求最大值\n2.求最小值\n3.求和\n");
scanf("%d", &choice);
switch (choice) {
case 1: max(&m, &n); break; // 调用函数时需要传递参数地址
case 2: min(&m, &n); break;
case 3: sum(&m, &n); break;
default: printf("输入错误!\n");
}
return 0;
}
void max(int *a, int *b) {
if (*a > *b) printf("%d\n", *a);
else printf("%d\n", *b);
}
void min(int *a, int *b) {
if (*a < *b) printf("%d\n", *a);
else printf("%d\n", *b);
}
void sum(int *a, int *b) {
printf("%d\n", (*a + *b));
}
```
解释一下,我们定义了三个函数 max、min 和 sum,它们的形参都是指针类型,这样在函数内部就可以通过指针操作来修改外部的变量了。主函数中先输入两个整数 m 和 n,然后输入要进行的操作,根据用户的选择调用相应的函数即可。注意,在函数调用时需要传递参数地址,即 &m 和 &n。
阅读全文