首页 > 代码库 > 1009. 说反话

1009. 说反话

 1 /* 2  * Main.c 3  * 1009. 说反话 4  *  Created on: 2014年8月29日 5  * 6  **********测试通过****** 7  */ 8  9 #include <stdio.h>10 #include <string.h>11 12 char inStr[81];13 char outStr[41][81];14 15 int main(void) {16 17     int i, j;18     int wordNum = 0;19 20     gets(inStr);21 22     int length = strlen(inStr);23     //以空格分隔,将每个单词存储到二维数组24     j = 0;25     for (i = 0; i < length; i++) {26         if (  == inStr[i]) {27             wordNum++;28             j = 0;29             continue;30         }31         outStr[wordNum][j++] = inStr[i];32     }33 34     while(wordNum>0)35         printf("%s ", outStr[wordNum--]);36     printf("%s\n", outStr[0]);37 38     return 0;39 }

 

这题目遇到一个古怪问题:

1 char inStr[81];2 char outStr[41][81];

定义为全局时,才能在我的IDE中正常运行;如果定义为局部时( main( )里面第一行位置 )结果就会出现乱码。

如图:

1. Visual Studio 2013 Express,局部变量:

 

 

2. Ecplise Luna,MinGW,GCC,局部变量:

 

 

但是奇怪之处在于,提交PAT结果都是正确的,无论局部还是全局的,都完全通过。这里就不懂了,望请大虾指点!感谢!

 

题目链接:

http://pat.zju.edu.cn/contests/pat-b-practise/1009

参考:

http://www.xuebuyuan.com/1560821.html

 

 

 

1009. 说反话