1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | A052:排列字串-繩控排序法 /* 描述 輸入一正整數N,然後輸入N個連字串,將這N個字串排序後印出。 注意 為了批改方便,你必須盡可能跟標準答案的輸出入一致,有些題目的要求可能寬鬆一點,但相同必定得分。 */ //通過率約7成 //可能是測資有問題,造成跳行錯誤 #include <iostream> using namespace std; int main() { int i,j,n; char input[1000],*output[1000]; cout<<"Input:\n"; cin>>n; output[0]=input; for(i=0;i<n;i++) { cin>>output[i]; output[i+1]=output[i]+strlen(output[i])+2; } for(i=0;i<n;i++) for(j=i;j<n;j++) if(strcmp(output[i],output[j])>0) swap(output[i],output[j]); for(i=0;i<n;i++) cout<<output[i]<<endl; return 0; } 葉正聖老師: 我看到你回報的測資可能怪怪的問題。我不知道原因為何,已經回報給謝育平老師。 另外有一個程式設計的技巧(在本題可能無效)分享一下,可以避免最後一個跳行。 for(i=0;i<n;i++){ cout<<output[i]; if(i!=n-1)cout<<endl; } |
Direct link: https://paste.plurk.com/show/2530734