天天看点

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试了一下,没有问题