C语言:编写一个函数,在数函数中调用它时,每次实现不同的功能

编写一个函数,在数函数中调用它时,每次实现不同的功能,第一次调用求两个数之和,第二次调用求两个数之差,第三次调用求两个数之积。
要求
(1) 在主函数中输入2个数a,b,并输出a,b的和、差、积。
(2) 分别编写函数add(),sub(),mul()计算两个数的和、差、积。
(3) 用指向函数的指针作为参数,编写函数process(),实现对add(),sub(),mul()的调用

#include <stdio.h>
int add(int a, int b)
{
    return a+b;
}
int sub(int a, int b)
{
    return a-b;
}
int mul(int a,int b)
{
    return a*b;
}
int process(int (*fun)(int,int), int a, int b)
{
    return fun(a,b);
}
int main()
{
    int a,b,r;
    printf("输入a、b两数:\n");
    scanf("%d%d",&a,&b);
    printf("两数之和:%d\n", process(add,a,b));
    printf("两数之差:%d\n", process(sub,a,b));
    printf("两数之积:%d\n", process(mul,a,b));
}

追问

对了

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-05
思路:函数指针数组可以实现这个,ptr++跳到下一个函数去执行了。你自己去实现下试试,不行再来问问
第2个回答  2013-06-05
#include<stdio.h>
int add(int m,int n)
{return m+n;}
int sub(int m,int n)
{return m-n;}
int mul(int m,int n)
{return m*n;}
int process(int(*p)(int ,int),int m,int n)
{
return p(m,n);
}
main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",process(add,m,n));
printf("%d\n",process(sub,m,n));
printf("%d\n",process(mul,m,n));
return 0;
}希望能帮到你,哪里不清楚再问。
我的运行没错,复制到记事本中先,望采纳!
第3个回答  2013-06-05
第三条啊。。。干嘛非要用指针啊啊啊啊啊啊啊