时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:3027
解决:1165
-
题目描述:
-
输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果
-
输入:
-
一个字符串,其长度n<=20
-
输出:
-
输入样例可能有多组,对于每组测试样例,
按照ASCII码的大小对输入的字符串从小到大进行排序,输出排序后的结果
-
样例输入:
-
dcba
-
样例输出:
-
abcd
-
答疑:
- 解题遇到问题?分享解题心得?讨论本题请访问: http://t.jobdu.com/thread-7790-1-1.html
用插入排序:270ms
#include<stdio.h>
int main()
{
char str[21];
int n;
int tmp;
int i,j;
while(scanf("%s",str) != EOF)
{
n = strlen(str);
tmp = str[0];
for(i = 1; i < n; i++)
{
j = i - 1;
tmp = str[i];
while(j >= 0 && str[j] > tmp)
{
str[j + 1] = str[j];
j--;
}
str[j + 1] = tmp;
}
for(i = 0; i < n; i++)
{
printf("%c",str[i]);
}
printf("\n");
//printf("%s\n",str);
}
}