Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。

来源:互联网 发布:php源代码加密 原理 编辑:程序博客网 时间:2024/06/10 12:00

描述

Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。

 


知识点字符串运行时间限制0M内存限制0输入

Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。

 


输出

Lily的所有图片按照从小到大的顺序输出

 


样例输入Ihave1nose2hands10fingers样例输出0112Iaadeeefghhinnnorsssv

解题思路:利用ASCII值,过于复杂,请参加代码2

       ASCII值  

0--9   48--57

A--Z       65--90

a--z        97--122



#include<iostream>using namespace std;int main(){char str[1024];gets(str);int len=strlen(str);int temp[80],count=0;char outstr[1024];for(int i=0;i<80;i++){temp[i]=0;}for(int i=0;i<len;i++){temp[str[i]-'0']++;}for(int i=0;i<80;i++){if(i>=0 && i<=9 && temp[i]!=0){for(int j=0;j<temp[i];j++){outstr[count++]=i+'0';}}else if(i>=17 && i<=42 && temp[i]!=0){for(int j=0;j<temp[i];j++){outstr[count++]=i+'0';}}else if(i>=49 && i<=74 && temp[i]!=0){for(int j=0;j<temp[i];j++){outstr[count++]=i+'0';}}}outstr[count]='\0';cout<<outstr;system("pause");return 0;}

代码2:

字符串数组中的元素可以直接排序,这样的话,直接对数组元素进行排序就行了

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){char a[1000];gets(a);int k=strlen(a);for(int i=0;i<k;i++)//选择排序{for(int j=i+1;j<k;j++)//在i+1到k中,找比a[i]小的数{ if(a[i]>a[j]) {char temp=a[i];a[i]=a[j];a[j]=temp; }}}printf("%s",a); system("pause");return 0;}



1 0