鱼C论坛

 找回密码
 立即注册
查看: 5339|回复: 22

关函数指针,.....运行时报错了,咋整??

[复制链接]
发表于 2014-4-23 22:45:51 | 显示全部楼层
有几个错误 给你修改了一下

  1. #include <stdio.h>




  2. int  main()
  3. {
  4.         int Max(int,int);//声明计算函数的形参类型
  5.         int Min(int,int);//声明计算函数的形参类型
  6.         int Add(int,int);//声明计算函数的形参类型
  7.         void process( int x, int y, int(fun)(int,int));//声明过程函数的形参类型

  8.         int a, b;
  9.         printf("enter a and b: ");
  10.         scanf("%d %d", &a, &b);//接收输入到变量a b

  11.         printf("max = ");
  12.         process(a, b, Max);//传递输入的参数a,b,和Max函数地址(函数名就是函数地址),注意你原来的max是小写的和系统本身的冲突了

  13.         printf("min = ");
  14.         process(a, b, Min);

  15.         printf("sum = ");
  16.         process(a, b, Add);
  17.         system("pause");
  18.         return 0;
  19. }
  20. int Max(int x, int y)
  21. {
  22.         int z;
  23.         if(x > y)
  24.         {
  25.                 z = x;
  26.         }
  27.         else
  28.         {
  29.                 z = y;
  30.         }
  31.         return z;
  32. }
  33. int Min(int x, int y)
  34. {
  35.         int n = x;
  36.         if( x>y )
  37.         {
  38.                 n = y;
  39.         }else
  40.         {
  41.                 n=x;
  42.         }
  43.         return n;
  44. }
  45. int Add(int x, int y)
  46. {
  47.         int sum;
  48.         sum = x + y;
  49.         return sum;
  50. }
  51. void process(int x, int y, int(fun)(int,int))
  52. {
  53.         int Ret;
  54.         Ret = fun(x,y);//取出函数地址和函数参数并计算,结果保存到Ret
  55.         printf("%d\n", Ret);//打印结果
  56. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-4-25 23:08:10 | 显示全部楼层
本帖最后由 machimilk 于 2014-4-25 23:10 编辑


其实我们这么写都有bug,试想输入2个一样的值,会返回什么,当然我们暂时不考虑2个一样的值,你初始的n等于x 如果y比x小就返回y这样可以省略x的,你注释的else是可以省略的,如果你还想更省也可以这样写

  1. int Max(int x, int y)
  2. {
  3.         return x>y?x:y;
  4. }
  5. int Min(int x, int y)
  6. {
  7.         return x<y?x:y;
  8. }
复制代码
void main()这样写在vc windows下没问题,但是在其他操作系统下面就会产生错误,为了保持良好的习惯还是用 int main吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-26 04:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表