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;
}