C++问题 指针作为函数的参数

来源:百度知道 编辑:UC知道 时间:2024/06/17 11:33:44
#include<iostream>
using namespace std;
int com(int,int,(*fun)(int,int));
int max(int,int);
int min(int,int);
int avg(int,int);
void main()
{
int a,b;
cin>>a>>b;
cout<<"max= "<<com(a,b,max)<<endl;
cout<<"min= "<<com(a,b,min)<<endl;
cout<<"avg= "<<com(a,b,avg)<<endl;
}
int com(int x,int y,(*fun)(int,int))
{
return (*fun)(x,y);
}
int max(int x,int y)
{
return (x>y) ? x: y;
}
int min(int x,int y)
{
return (x<y) ? x: y;
}
int avg(int x,int y)
{
return (x+y)/2.0;
}

#include<iostream>
using namespace std;

int com(int x,int y,int (*fun)(int,int))
{
return (*fun)(x,y);
}

int Max(int x,int y)
{
return x > y ? x: y;
}

int main()
{
int a,b;
cin>>a>>b;
cout<<"max= "<<com(a,b,Max)<<endl;
return 0;
}

上面的这个可以。

这个是我跟你该的:

#include "stdafx.h"
#include<iostream>
using namespace std;
typedef int (* FUN)(int,int);
int com(int ,int,FUN);
int max(int,int);
int min(int,int);
int avg(int,int);
void main()
{
int a,b;
cin>>a>>b;
cout<<"max= "<<com(a,b,max)<<endl;
cout<<"min= "<<com(a,b,min)<<endl;
cout<<"avg= "<<com(a,b,avg)<<endl;
}
int com(int x,int y,FUN f)
{
return f