main()
{
charst[20],cs[5][20];//cs存放五個名字
inti,j,p;//定義p就是浪費,沒用,可以刪掉
printf("inputcountry"sname:\n");//提示輸入
for(i=0;i<5;i++)//迴圈讀5個字串(國家名字)放到cs數組裡
gets(cs[i]);
printf("\n");//輸出個換行符,為了輸出格式好看一點?
//以下就是一個氣泡排序
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
//下面這一段可以只用一個if(strcmp(cs[j],cs[i])<0)
//{}內的程式碼用第二個if中的三個strcpy
//作用就是判斷i和j處的字串是不是按字母順序排的
//如果不是就將它們兩個交換一下位置
if(strcmp(cs[j],st)<0){p=j;strcpy(st,cs[j]);}
if(p!=i)
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}
//輸出排序後的字串?那就不應該加在這裡
//可以在下面這個括號之後另起一個迴圈,輸出
puts(cs[i]);}printf("\n");
總而言之,這個程式的問題還是有的,還要好好修改一下
main()
{
charst[20],cs[5][20];//cs存放五個名字
inti,j,p;//定義p就是浪費,沒用,可以刪掉
printf("inputcountry"sname:\n");//提示輸入
for(i=0;i<5;i++)//迴圈讀5個字串(國家名字)放到cs數組裡
gets(cs[i]);
printf("\n");//輸出個換行符,為了輸出格式好看一點?
//以下就是一個氣泡排序
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
//下面這一段可以只用一個if(strcmp(cs[j],cs[i])<0)
//{}內的程式碼用第二個if中的三個strcpy
//作用就是判斷i和j處的字串是不是按字母順序排的
//如果不是就將它們兩個交換一下位置
if(strcmp(cs[j],st)<0){p=j;strcpy(st,cs[j]);}
if(p!=i)
{
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}
//輸出排序後的字串?那就不應該加在這裡
//可以在下面這個括號之後另起一個迴圈,輸出
puts(cs[i]);}printf("\n");
}
總而言之,這個程式的問題還是有的,還要好好修改一下