首页 > 代码库 > 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. 说反话
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。