鱼C论坛

 找回密码
 立即注册
查看: 1804|回复: 12

指针函数的练习

[复制链接]
发表于 2016-9-10 09:55:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我用的VS2010  初学不晓得哪些地方是不是和6.0不一样。下边是程序。是编译没通过 有问题不知道这么改  请教各位鱼油。谢谢。
  1. #if(1)

  2. #include <stdio.h>
  3. #include <stdlib.h>

  4. int main()
  5. {
  6.         int max( int x, int y);
  7.         int min( int x, int y );
  8.         int (*p)( int, int );
  9.         int a, b, c, n;
  10.         printf("please enter two integer a and b :\n");
  11.         scanf_s("%d,%d",&a, &b );
  12.         printf("if you want get the biger one,plaese enter 1,or small 2\n");
  13.         scanf("%d",&n );
  14.         if( n==1 )
  15.         {
  16.                 p=max;
  17.                 c=(*p)( a, b );
  18.                 printf(" the biger one is %d\n",c );
  19.                 system("pause");
  20.         }
  21.         if( n==2 )
  22.         {
  23.                 p=min;
  24.                 c=(*p)( a, b );
  25.                 printf(" min = %d\n", c );
  26.                 system ("pause");
  27.         }
  28.         return 0;
  29. }

  30. int max( int x, int y )
  31. {
  32.         int z;
  33.         if( x>y )  z=x;
  34.         else z=y;
  35.         return z;
  36. }

  37. int min( int x, int y )
  38. {
  39.         int z;
  40.         z=( x<y )? x:y;
  41.         return z;
  42. }

  43. #endif
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-10 10:22:30 | 显示全部楼层
错误信息呢?提问时记得贴错误信息!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-10 10:40:20 | 显示全部楼层
无符号整形 发表于 2016-9-10 10:22
错误信息呢?提问时记得贴错误信息!


                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-10 10:41:16 | 显示全部楼层
这是错误信息
QQ截图20160910104148.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-10 10:42:30 | 显示全部楼层
无符号整形 发表于 2016-9-10 10:22
错误信息呢?提问时记得贴错误信息!

没回复好,贴4#了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-10 10:53:43 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdlib.h>


  3. int max( int x, int y);
  4. int min( int x, int y );

  5. int main()
  6. {
  7.         int (*p)( int, int );
  8.         int a, b, c, n;
  9.         printf("please enter two integer a and b :\n");
  10.         scanf_s("%d,%d",&a, &b );
  11.         printf("if you want get the biger one,plaese enter 1,or small 2\n");
  12.         scanf("%d",&n );
  13.         if( n==1 )
  14.         {
  15.                 p=max;
  16.                 c=(*p)( a, b );
  17.                 printf(" the biger one is %d\n",c );
  18.                 system("pause");
  19.         }
  20.         if( n==2 )
  21.         {
  22.                 p=min;
  23.                 c=(*p)( a, b );
  24.                 printf(" min = %d\n", c );
  25.                 system ("pause");
  26.         }
  27.         return 0;
  28. }

  29. int max( int x, int y )
  30. {
  31.         int z;
  32.         if( x>y )  z=x;
  33.         else z=y;
  34.         return z;
  35. }

  36. int min( int x, int y )
  37. {
  38.         int z;
  39.         z=( x<y )? x:y;
  40.         return z;
  41. }
复制代码
这样行吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-10 11:32:17 | 显示全部楼层

还是那样的错误。所以不晓得是不是VS2010本身语法需要添加什么啊。我还试了其他的函数指针。都是一样的。类型错误  什么函数名是没有声明的标识符什么的。错误一样。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-10 11:43:54 | 显示全部楼层
这就不知道了,C4droid运行一切正常。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-10 12:59:14 | 显示全部楼层

  1. #if(1)

  2. /*错误: error C4996: 'scanf':
  3. To disable deprecation, use “_CRT_SECURE_NO_WARNINGS”
  4. //向右边拉把双引号的内容复制然后预处理第一行进行宏定义如下
  5. */
  6. #define  _CRT_SECURE_NO_WARNINGS//这个在vs2013版本需添加
  7. #include <stdio.h>
  8. #include <stdlib.h>

  9. int main()
  10. {
  11.         int my_max(int x, int y);//max 和 min 因该是已经在库函数中定义过的了
  12.         int my_min(int x, int y);//你再次定义就会重复定义;改改函数名就好
  13.         int(*p)(int, int);
  14.         int a, b, c, n;
  15.         printf("please enter two integer a and b :\n");
  16.         scanf_s("%d,%d", &a, &b);
  17.         printf("if you want get the biger one,plaese enter 1,or small 2\n");
  18.         scanf("%d", &n);
  19.         if (n == 1)
  20.         {
  21.                 p = my_max;
  22.                 c = (*p)(a, b);
  23.                 printf(" the biger one is %d\n", c);
  24.                 system("pause");
  25.         }
  26.         if (n == 2)
  27.         {
  28.                 p = my_min;
  29.                 c = (*p)(a, b);
  30.                 printf(" min = %d\n", c);
  31.                 system("pause");
  32.         }
  33.         return 0;
  34. }

  35. int my_max(int x, int y)
  36. {
  37.         int z;
  38.         if (x>y)  z = x;
  39.         else z = y;
  40.         return z;
  41. }

  42. int my_min(int x, int y)
  43. {
  44.         int z;
  45.         z = (x<y) ? x : y;
  46.         return z;
  47. }

  48. #endif
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-10 13:13:40 | 显示全部楼层
解释错误了 应该是编译器已经对 max min 进行宏定义了
错误.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-10 13:43:40 | 显示全部楼层
无符号整形 发表于 2016-9-10 11:43
这就不知道了,C4droid运行一切正常。

好的谢谢  证明程序是正确的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-10 13:44:38 | 显示全部楼层

哇(*@ο@*)    谢谢谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-10 13:45:17 | 显示全部楼层
18813974736 发表于 2016-9-10 13:13
解释错误了 应该是编译器已经对 max min 进行宏定义了

恩恩  谢谢谢谢我知道了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-13 08:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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