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了。 展开
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了。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询