天天看點

hdu 2000 ASCII碼排序ASCII碼排序

ASCII碼排序

Problem Description

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

Input

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

Outpu

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

Sample Input

qwe

asd

zxc

Sample Output

e q w

a d s

c x z

思路

首先,這道題是一個排序,非常簡單;

根據ascii碼排序可以用到char -> int -> char的強制轉換的思路

然後用sort就可以排序了!

接下來是代碼了 隻有c++

#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;

int main(){
   char arr[10000];
   while(cin>>arr)
   {
       int len=strlen(arr)-1;
       int arr2[10000];
       for(int i=0;i<=len;i++)
       {
           arr2[i]=(int)arr[i];//用int強制把arr中的char類型轉換為int類型存在arr2中
       }
       sort(arr2,arr2+len+1);//sort為快排,超級友善在算法 algorithm頭檔案裡面
       for(int i=0;i<=len;i++)
       {
           cout<<(char)arr2[i];//在輸出的時候強制把int類型的arr2轉換為char輸出;
           if(i!=len){
               cout<<' ';//空格是每一個題都要注意的地方,小心pe!最後沒有空格
           }
       }
       cout<<endl;
   }
   return 0;
}
           

怕這麼簡單的代碼都不能用,自己跑去hdu試了一下,沒有問題