读书人

指向函数的指针?该如何解决

发布时间: 2012-02-20 21:18:24 作者: rapoo

指向函数的指针?
/*指向函数的指针,输入两个数打出较大值或较小值及之和,这题是上课老师那里抄的,漏了些,运行不正确的,大虾们帮我看看,谢谢*/
void process(int x,int y,int (*fun)());
max (int x,int y);
min (int x,int y);
add (int x,int y);

main()
{
int a,b,c,max ;
scanf( "%d %d ",&a,&b);
process(a,b,max);
printf( "%d ",);/*这里怎么打出?*/
getch();


}
void process(int x,int y,int (*fun)())
{
int result;
result =(*fun)(x,y);
return(result);
}

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

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

add (int x,int y)
{int sum;
sum=x+y;
return(sum);
}



[解决办法]

#include "conio.h "

#undef max
#undef min

int process(int x,int y,int (*fun)(int, int));
int max (int x,int y);
int min (int x,int y);
int add (int x,int y);

void main()
{
int a,b,c;
scanf( "%d %d ",&a,&b);
int r = 0;

r = process(a,b,max);
printf( "max : %d\n ", r);

r = process(a,b,min);
printf( "min : %d\n ", r);

r = process(a,b,add);
printf( "add : %d\n ", r);

getch();


}
int process(int x,int y,int (*fun)(int, int))
{
int result;
result =(*fun)(x,y);
return(result);
}

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

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

int add (int x,int y)
{
int sum;
sum=x+y;
return(sum);
}


[解决办法]
void process(int x,int y,int (*fun)(int, int));
int max (int x,int y);
int min (int x,int y);
int add (int x,int y);

main()
{
int a,b,c;
scanf( "%d %d ",&a,&b);
c=process(a,b,max);
printf( "%d ",);/*这里怎么打出?*/
getch();


}
void process(int x,int y,int (*fun)(int,int))
{


int result;
result =(*fun)(x,y);
return(result);
}

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

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

int add (int x,int y)
{int sum;
sum=x+y;
return(sum);
}


读书人网 >C语言

热点推荐