|
发表于 2014-4-23 22:45:51
|
显示全部楼层
有几个错误 给你修改了一下
- #include <stdio.h>
- int 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);//接收输入到变量a b
- printf("max = ");
- process(a, b, Max);//传递输入的参数a,b,和Max函数地址(函数名就是函数地址),注意你原来的max是小写的和系统本身的冲突了
- printf("min = ");
- process(a, b, Min);
- printf("sum = ");
- process(a, b, Add);
- system("pause");
- return 0;
- }
- int Max(int x, int y)
- {
- int z;
- if(x > y)
- {
- z = x;
- }
- else
- {
- z = y;
- }
- return z;
- }
- int Min(int x, int y)
- {
- int n = x;
- if( x>y )
- {
- n = y;
- }else
- {
- n=x;
- }
- return n;
- }
- int Add(int x, int y)
- {
- int sum;
- sum = x + y;
- return sum;
- }
- void process(int x, int y, int(fun)(int,int))
- {
- int Ret;
- Ret = fun(x,y);//取出函数地址和函数参数并计算,结果保存到Ret
- printf("%d\n", Ret);//打印结果
- }
复制代码 |
|