#include<stdio.h> int main(void) { int a,b,c,*p; scanf("%d,%d",&a,&b); p=sum; *p(a,b,c); p=swap; *p(a,b); printf("sum=%d\n",c); printf("a=%d,b=%d\n",a,b); } sum(int a,int b,int c) { c=a+b; } swap(int a,int b) { int t; t=a; a=b; b=t ; }这串代码要怎么改
时间: 2024-01-12 15:03:41 浏览: 30
以下是修改后的代码:
```c
#include<stdio.h>
int sum(int a,int b); // 声明sum函数
void swap(int *a,int *b); // 声明swap函数
int main(void) {
int a, b, c;
int (*p)(int, int); // 定义函数指针p
scanf("%d,%d",&a,&b);
p = sum; // 将p指向sum函数
c = (*p)(a,b); // 调用sum函数
p = swap; // 将p指向swap函数
(*p)(&a,&b); // 调用swap函数
printf("sum=%d\n",c);
printf("a=%d,b=%d\n",a,b);
return 0;
}
int sum(int a, int b) { // 修改sum函数
return a + b;
}
void swap(int *a, int *b) { // 修改swap函数
int t = *a;
*a = *b;
*b = t;
}
```
修改的地方如下:
1. 在main函数前面声明sum和swap函数,以便main函数中可以调用。
2. 将指针变量p改为函数指针,可以指向不同的函数。
3. 在调用函数时,使用(*p)(a,b)的形式,表示先通过指针p找到对应的函数,然后再调用该函数。
4. 修改sum函数的参数和返回值,使其能够正确计算a和b的和并返回结果。
5. 修改swap函数的参数为指针类型,以便在函数内部直接修改a和b的值。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![image/gif](https://img-home.csdnimg.cn/images/20210720083352.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)