ASCII碼排序


Problem Description

  輸入三個字符后,按各字符的ASCII碼從小到大的順序輸出這三個字符。

Input

  輸入數據有多組,每組占一行,有三個字符組成,之間無空格。

Output

  對於每組輸入數據,輸出一行,字符中間用一個空格分開。

Sample Input

  qwe asd zxc

Sample Output

  e q w a d s c x z

 

 

要讓三個數從小到大排,順序就是:

比較1,2兩個數。如果第一個數比第二數大,把這兩個數交換,來保證前面兩個數按升序排列。

比較2,3兩個數。如果第二個數比第三數大,把這兩個數交換,來保證后面兩個數按升序排列。

經過上面兩步,最大的數已經被移到最后。再重復一次第一步。保證三個數都是按升序來排列。

雖然你也可以用排序算法對它進行排序,但那就把問題復雜化了。做ACM的題目,就是要充分利用題目給出的條件(本題一明確指出輸入的只有三個字符)。選擇最優算法,而不是最通用的算法。

 

 

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     char n[4];
 8 
 9     while (cin >> n)
10     {
11         if (n[0] > n[1]) swap(n[0], n[1]);
12         if (n[1] > n[2]) swap(n[1], n[2]);
13         if (n[0] > n[1]) swap(n[0], n[1]);
14         cout << n[0] <<“ ”<< n[1] <<“ ”<< n[2] << endl;
15     }
16 
17     return 0;
18 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM