1. 题目描述
牛客网在线OJ链接
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。
输入描述:Lily使用的图片包括 “A” 到 “Z” 、 “a” 到 “z” 、 “0” 到 “9” 。输入字母或数字个数不超过 1024 。
输出描述:Lily的所有图片按照从小到大的顺序输出
示例:
输入:Ihave1nose2hands10fingers
输出:0112Iaadeeefghhinnnorsssv
2. 思路
每个 ascii 字符在内存都有一个对应的 ascii 值,通过内存中数据的存储进行排序就行。
使用冒泡排序:相邻数据之间进行比较交换,将较大或较小的数据向后推到数组末尾,然后开始下一轮次的排序。
3. 代码实现
#include <stdio.h>
#include<string.h>
int main() {char str[1024] = {0};while (gets(str)) {int len = strlen(str);for (int i = 0; i < len; i++) {for (int j = 1; j < len - i; j++) {if (str[j] < str[j - 1]) {char ch = str[j - 1];str[j - 1] = str[j];str[j] = ch;}}}printf("%s\n", str);}return 0;
}