设一个函数process,调用它的时候,每次实现不同的功能
#include <stdio.h>void main()
{
int max(int , int);
int min(int, int);
int add(int, int);
void process(int x, int y, int(*fun)(int, int));
int a, b;
printf("Enter a and b:");
scanf("%d %d", &a, &b);
printf("max = ");
process(a, b, max);
printf("min = ");
process(a, b, min);
printf("add = ");
process(a, b, add);
}
int max(int i, int j)
{
int k;
k = (i>j)?i:j;
return k;
}
int min(int i, int j)
{
int k;
k = (i>j)?j:i;
return k;
}
int add(int i, int j)
{
int k;
k = i + j;
return k;
}
void process(int x, int y, int(*fun)(int, int))
{
printf("%d\n", *fun);
}
程序如上,刚开始学,所以不知道哪里出错了,运行结果是不正确的,求大神们指点。 process的实现,不能这样写,应该这样
printf("%d\n", fun(x,y)); BngThea 发表于 2018-1-16 10:53
process的实现,不能这样写,应该这样
好的 谢谢您的答复! BngThea 发表于 2018-1-16 10:53
process的实现,不能这样写,应该这样
能解释下为什么要用fun(x,y)而不能用*fun吗
页:
[1]