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
#include<stdio.h>int main(){char input[81];int space[82];int i,j=0,a,k;int x;gets(input);input[80] = 0; //safe donespace[j++] = -1;//mark the first word begin's frontfor(i=0,x=0;input[i]>0;i++,x++){if(input[i]==' ')space[j++]=i;}space[j]=x; //mark the last word endfor(a=j;a>0;a--){for(k=space[a-1]+1;k<space[a];k++)printf("%c",input[k]);if(a>1) printf(" ");else printf("\n");//the last not have blank}return (0);}試試這樣。你的代碼太冗余了。
不是說反話 是傲嬌 類似於撒嬌吧 就好像你女朋友生你氣 你要抱她 她會說 滾開 誰要你抱之類的 但是你強行抱住她 她his會很高興的 這就是傲嬌
雖然和說反話差不多 但是有區別 傲嬌可以明顯看出來時口是心非 嘴上說不好 心裡說好
說反話就不一定了 不一定看得出來 而且也許嘴上說好心裡說不好
總的來說就是 傲嬌算褒義詞 說反話就是貶義