- 论坛徽章:
- 0
|
30可用积分
这段简化的代码,输出应该只有103, 104, 105三种,
结果怎么都不对。
昨天花一个晚上才查出这个问题,真是太不可饶恕了。
大家看看,第一个找出问题的加30分
- #include <stdio.h>
- #include <string.h>
- int some_func()
- {
- return 100;
- }
- typedef enum
- {
- CHOOSE_NOBODY = 3,
- CHOOSE_TOM = 4,
- CHOOSE_JERRY = 5
- } CHOOSE_E;
- int main( int argc, char **argv )
- {
- CHOOSE_E choice;
- int action;
-
- if( argc != 2 )
- {
- fprintf( stderr, "Wrong arguments\n" );
- return 1;
- }
- if( strcmp( argv[1], "tom" ) == 0 )
- choice = CHOOSE_TOM;
- else if ( strcmp( argv[1], "jerry" ) == 0 )
- choice = CHOOSE_JERRY;
- else
- choice = CHOOSE_NOBODY,
-
- /* Assisn the variable action
- and print it
- */
- action = some_func( ) + choice;
- printf( "action = %d\n", action );
- return 0;
- }
复制代码
[ 本帖最后由 飞灰橙 于 2008-7-11 13:55 编辑 ] |
|