麻烦大家帮我看个c语言的程序,总是编不通过,是用指针对两个整数进行加减乘除运算,十分感谢!

#include<stdio.h>intadd(inta,intb);intsub(inta,intb);intmul(inta,intb);intdiv(inta,in... #include<stdio.h>
int add(int a,int b);
int sub(int a,int b);
int mul(int a,int b);
int div(int a ,int b);
void result(int(*pf)(),int a ,int b);
void main()
{
int (*pf)();
int i,j;
printf("please enter two inters:");
scanf("%d %d",&i,&j);
pf=add;
result(pf,i,j);
pf=sub;
result(pf,i,j);
pf=mul;
result(pf,i,j);
pf=div;
result(pf,i,j);
printf("\n");

}

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 div(int a,int b)
{
return a/b;
}
void result(int(*p)(),int a ,int b)
{
int value;
value=(*p)(a,b);
printf("%d\t",value);
}
不知道这程序有什么问题,就是编不通过,报错如下:
展开
 我来答
郝在益
推荐于2016-09-10 · TA获得超过2079个赞
知道小有建树答主
回答量:1496
采纳率:54%
帮助的人:612万
展开全部

其实,这只是你没有学习函数重载而引起的问题。帮你修改了下,已经可以使用了,

#include<stdio.h>
int  add(int a,int b);
int sub(int a,int b);
int mul(int a,int b);
int div(int a ,int b);
void result(int(*pf)(int ,int),int a ,int b);//函数指针还是要加上参数数据类型的
void  main()
{
int (*pf)(int ,int);
int i,j;
printf("please enter two inters:");
scanf("%d %d",&i,&j);
pf=add;
result(pf,i,j);
pf=sub;
result(pf,i,j);
pf=mul;
result(pf,i,j);
pf=div;
result(pf,i,j);
printf("\n");


}

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 div(int a,int b)
{
return a/b;
}
void result(int(*p)(int,int),int a ,int b)
{
int value;
value=p(a,b);//这里就可以直接写p();调用了
printf("%d\t",value);
}

满意请采纳

风若远去何人留
2013-07-25 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450101
专业C/C++软件开发

向TA提问 私信TA
展开全部
所有用int(*pf)()的地方 都改成 int(*pf)(int, int)
因为你定义的计算函数都是带双参数的,你用函数指针也要保持同样类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式