华为机试34:图片整理

描述
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。
本题含有多组样例输入。
输入描述:Lily使用的图片包括"A"到"Z"、“a"到"z”、“0"到"9”。输入字母或数字个数不超过1024。
输出描述:Lily的所有图片按照从小到大的顺序输出
示例1
输入:Ihave1nose2hands10fingers
输出:0112Iaadeeefghhinnnorsssv

题解:
字符按ASCII排序后输出;
思路:开一个数组,下标对应字符的ASCII码,存储字符出现的次数,最后按数组顺序输出。

C语言:

#include<stdio.h>
#include<string.h>

int main()
{
    char arr[1024];
    while(gets(arr))
    {
        for(int i=0;i<127;i++)
        {
            for(int j=0;j<strlen(arr);j++)
            {
                if(arr[j]==i) 
                {
                   printf("%c",arr[j]);
                }
            }
        }
         printf("\n");
    }
    return 0;
}

C++:

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    string str;
    while(cin >> str)
    {
        sort(str.begin(),str.end());
        cout << str << endl;
    }
    return 0;
}

华为机试34:图片整理

上一篇:逐层分析while((scanf(“%d“,&a))!=EOF)


下一篇:ASCII码表