HDU - 2000 ASCII碼排序

輸入三個字符后,按各字符的ASCII碼從小到大的順序輸出這三個字符。
Input
輸入數(shù)據(jù)有多組,每組占一行,有三個字符組成,之間無空格。
Output
對于每組輸入數(shù)據(jù),輸出一行,字符中間用一個空格分開。
Sample Input
qwe
asd
zxc
Sample Output
e q w
a d s
c x z

問題鏈接(https://vjudge.net/problem/hdu-2000)

問題簡述:輸入三個字符,根據(jù)ASCALL碼值的大小來對各字符進行從小到大的排序

問題分析:由于涉及到排序問題,有多種思路可走:1,可以通過選擇排序;2,可以通過冒泡排序,3,可以通過IF語句的應用來進行排序。將最大的字符及最小的字符找出來

程序分析:定義一個函數(shù)paixu將最大的字符及最小的字符找出來;并在主函數(shù)中進行函數(shù)調(diào)用
AC通過的代碼如下

#include<iostream>
using namespace std;
void paixu(char*p)
{
    if(p[0]<p[1])
        {
            int t=p[1];
            p[1]=p[0];
            p[0] = t;
        }//p[0]大
    if (p[0] < p[2])
    {
        int t = p[2];
        p[2] = p[0];
        p[0] = t;
    }//p[0]最大
    if (p[2] > p[0])
    {
        int t = p[0];
        p[0] = p[2];
        p[2] = t;
    }//現(xiàn)在p[2]小
    if (p[2] > p[1])
    {
        int t = p[1];
        p[1] = p[2];
        p[2] = t;
    }//現(xiàn)在p[2]最小
    cout << p[2];
    for (int i = 1; i >=0; i--)
    {
        cout << " " << p[i] ;
    }
    cout << endl;
}
int main()
{
    char p[3] = { 0 };
    while (cin >> p[0]>>p[1]>>p[2])
    {
        paixu(p);
    }
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容