每行輸入三個字元(無空格),按ASCII碼升序輸出,字元間以單一空格分隔。多組測試資料直到EOF。
固定三元素,兩兩比較交換即可完成排序(冒泡/選擇排序簡化版):
if (a > b) swap(a,b);
if (a > c) swap(a,c);
if (b > c) swap(b,c);
#include <stdio.h>
int main() {
char a, b, c, t;
while (scanf("%c %c %c", &a, &b, &c) != EOF) {
getchar(); // 吸收換行符
if (a > b) { t=a; a=b; b=t; }
if (a > c) { t=a; a=c; c=t; }
if (b > c) { t=b; b=c; c=t; }
printf("%c %c %c\n", a, b, c);
}
return 0;
}
scanf("%c %c %c", ...) 格式字串中的空格會跳過空白字元(含換行)qwe,需用 %c%c%c 且配合 getchar() 吃掉換行q w e 格式;若實測為 qwe 應移除空格輸入: qwe ASCII: q=113, w=119, e=101 排序: e(101) q(113) w(119) 輸出: e q w ✓