1. 程式人生 > >HDU - 2000 ASCII碼排序【水題】

HDU - 2000 ASCII碼排序【水題】

ASCII碼排序

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 237624 Accepted Submission(s): 93524

Problem Description
輸入三個字元後,按各字元的ASCII碼從小到大的順序輸出這三個字元。

Input
輸入資料有多組,每組佔一行,有三個字元組成,之間無空格。

Output
對於每組輸入資料,輸出一行,字元中間用一個空格分開。

Sample Input
qwe
asd
zxc

Sample Output
e q w
a d s
c x z

Author
lcy

Source
C語言程式設計練習(一)

Recommend
JGShining

問題連結https://vjudge.net/problem/hdu-2000。

問題簡述:每行輸入三個字元,將各字元從小到大排序輸出。

問題分析:利用while迴圈輸入的原理,輸入的字元可用陣列來儲存。每一行輸出時,字元中間用一個空格分開。

程式說明:利用while迴圈,進行排序。(將陣列中第一元素跟第二元素比較大小(前者比後者大就利用一箇中間變數來交換位置);再將陣列中第二元素跟第三元素比較大小;最後將陣列中第一元素跟第二元素比較大小;)
  
AC通過的C語言程式如下:

#include <iostream>
using namespace std;
int main()
{
	char a[3];//宣告一個數組
	while (cin >> a)//當輸入該陣列元素時迴圈
	{
		char s;
		if (a[0] > a[1])
		{
			s = a[0];
			a[0] = a[1];
			a[1] = s;
		}
		if (a[1] > a[2])
		{
			s = a[1];
			a[1] = a[2];
			a[2] = s;
		}
		if (a[0] > a[1])
		{
			s = a[0];
			a[0] = a[1];
			a[1] = s;
		}
		cout <<a[0] <<" " << a[1]<<" " << a[2]<<endl;
	}
}