免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 飞灰橙
打印 上一主题 下一主题

[C] 有奖纠错。。。。。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-11 13:01 |显示全部楼层 |倒序浏览
30可用积分
这段简化的代码,输出应该只有103, 104, 105三种,
结果怎么都不对。
昨天花一个晚上才查出这个问题,真是太不可饶恕了。
大家看看,第一个找出问题的加30分


  1. #include <stdio.h>
  2. #include <string.h>

  3. int some_func()
  4. {
  5.         return 100;
  6. }

  7. typedef enum
  8. {
  9.         CHOOSE_NOBODY = 3,
  10.         CHOOSE_TOM = 4,
  11.         CHOOSE_JERRY = 5
  12. } CHOOSE_E;

  13. int main( int argc, char **argv )
  14. {
  15.         CHOOSE_E choice;
  16.         int action;
  17.        
  18.         if( argc != 2 )
  19.         {
  20.                 fprintf( stderr, "Wrong arguments\n" );
  21.                 return 1;
  22.         }

  23.         if( strcmp( argv[1], "tom" ) == 0 )
  24.                 choice = CHOOSE_TOM;
  25.         else if ( strcmp( argv[1], "jerry" ) == 0 )
  26.                 choice = CHOOSE_JERRY;
  27.         else
  28.                 choice = CHOOSE_NOBODY,

  29.        
  30.         /* Assisn the variable action
  31.            and print it
  32.          */
  33.         action = some_func( ) + choice;

  34.         printf( "action = %d\n", action );

  35.         return 0;
  36. }
复制代码

[ 本帖最后由 飞灰橙 于 2008-7-11 13:55 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-07-11 13:54 |显示全部楼层
argv[0]是我打错了,不算,呵呵
主要还是逗号
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP