[PTA]習題8-7 字元串排序
本題要求編寫程式,讀入5個字元串,按由小到大的順序輸出。
輸入格式:
輸入為由空格分隔的5個非空字元串,每個字元串不包括空格、制表符、換行符等空白字元,長度小于80。
輸出格式:
按照以下格式輸出排序後的結果:
After sorted:
每行一個字元串
輸入樣例:
red yellow blue green white
輸出樣例:
After sorted:
blue
green
red
white
yellow
- 送出結果:

- 源碼:
#include<stdio.h>
#include<string.h>
int main(void)
{
char str[5][81];
for (int i = 0; i < 5; i++) // 5個字元串
{
scanf("%s", &str[i]);
}
for (int i = 0; i < 4; i++) // 選用選擇排序法對5個字元串進行排序,比較4次可出結果
{
for (int j = i + 1; j < 5; j++) // 從剩下的5-i個字元串中進行比較
{
if (strcmp(str[i], str[j]) > 0) // 如果目前字元串大于後續字元串,則交換它們的值
{
char temp[81];
strcpy(temp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], temp);
}
}
}
printf("After sorted:\n"); // 輸出排序後的字元串
for (int i = 0; i < 5; i++)
{
printf("%s\n", str[i]);
}
return 0;
}