|
发表于 2013-4-25 17:53:04
|
显示全部楼层
- int process(int a, int b ,int (*fun)());
复制代码 函数指针与所对应的函数的参数也要一致即:楼主指针fun指向一个含有两个整型的参数返回值为整型的函数,fun定义是就应该定义成:int (*fun)(int, int);
这是我在楼主的基础上改的,仅供参考。- #include <stdio.h>
- int max1(int a, int b);
- int min1(int a, int b);
- int add(int a, int b);
- int process(int a, int b ,int (*fun)(int,int)); //调用 max min add 请问如何实现这个函数,并调用,谢谢!
- void main()
- {
- int a, b;
- scanf("%d,%d", &a, &b);
- printf("%d, %d,max : %d\n",a,b,process(a, b, max1));
- printf("%d, %d,min : %d\n",a,b,process(a, b, min1));
- printf("%d, %d,add: %d\n",a,b,process(a, b, add));
- }
- int max1(int a, int b)
- {
- if(a>b)
- {
- return a;
- }
- else
- {
- return b;
- }
- }
- int min1(int a, int b)
- {
- if(a<b)
- {
- return a;
- }
- else
- {
- return b;
- }
- }
- int add(int a, int b)
- {
- return a +b;
- }
- int process(int a, int b ,int (*fun)(int,int))
- {
- if(fun == max1)
- {
- return max1(a,b);
- }
- if(fun == min1)
- {
- return min1(a,b);
- }
- if(fun == add)
- {
- return add(a,b);
- }
- }
复制代码 |
|