C++ 简单题目,关于用函数的指针调用函数,比较两个数大小,求大神看看。

用这三个函数写一个小程序比较大小intmin(inta,intb);//Returnsthemaximumofaandbintmax(inta,intb);//Retur... 用这三个函数写一个小程序比较大小
int min(int a, int b); // Returns the maximum of a and b
int max(int a, int b); // Returns the minimum of a and b
int callfn(int(*f)(int,int),int a,int b) ; // call function f and pass parameters a and b in order

输出要求在主函数里做。
代码如下:

#include <iostream>
using namespace std;

int min(int a, int b) // Returns the maximum of a and b
{
if(a <= b)
{
return a;
}
else
{
return b;
}
}
int max(int a, int b) // Returns the maximum of a and b
{
if(a <= b)
{
return b;
}
else
{
return a;
}
}
int callfn(int(*f)(int,int),int a,int b) // call function f and pass parameters a and b in order
{
return f;
}

#ifndef WEBSUBMIT
int main()
{
int (*f)(int,int);
int a = 43;
int b = 56;
f = &min;
cout << min(43,56) << endl;
f = &max;
cout << max(43,56) << endl;
}
#endif //WEBSUBMIT
我自己推测问题主要出在这里:

int callfn(int(*f)(int,int),int a,int b) // call function f and pass parameters a and b in order
{
return f;
}
这里不知道怎么改,如果删除return;

程序在机器上测试的时候会显示:

Testing program2-1 - failed!
diff <your-output> <expected-output>
1c1
< max 43
---
> max 56

如果改成return 0;

测试的时候输出值就都是0了。
展开
 我来答
金陵小锅贴
推荐于2017-10-08
知道答主
回答量:18
采纳率:0%
帮助的人:5万
展开全部
请问要看什么呢?
第三个函数返回值不是Int型吗,改成return f(a,b);
类外建议把main函数定义为void类型,谢谢~
更多追问追答
追问
int callfn(int(*f)(int,int),int a,int b) // call function f and pass parameters a and b in order
{
return f;
}

好像是这里不对,具体怎么不对,求指点。
追答
f是一个函数指针,你的函数是int型的,返回值和函数的类型不匹配
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式