![]() |
#2
许苏娟2010-04-05 23:16
|
Time Limit:1000MS Memory Limit:65536K
Total Submit:71 Accepted:17
Description
输入n(10000>=n>=1)个字符后,按各字符的ASCII码从小到大的顺序输出这n个字符。
Input
输入数据有多组,每组占两行,第一行输入整数n(10000>=n>=1),第二行输入n个ASCII字符。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
3
b c a
Sample Output
a b c 下面是我的程序,用冒泡做的,算法不够简单,请各位指点更简单的方法。

#include<iostream>
using namespace std;
int main(){
int n;
while(cin>>n){
char a[10001];int i,j;
for(i=0;i<n;i++)
cin>>a[i];
for(i==n-1;i>0;i--)
for(j=0;j<i;j++){
if(a[j]>a[j+1]){
char temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for(i=1;i<=n;i++)
cout<<a[i]<<' ';
cout<<endl;
}
return 0;
}
using namespace std;
int main(){
int n;
while(cin>>n){
char a[10001];int i,j;
for(i=0;i<n;i++)
cin>>a[i];
for(i==n-1;i>0;i--)
for(j=0;j<i;j++){
if(a[j]>a[j+1]){
char temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for(i=1;i<=n;i++)
cout<<a[i]<<' ';
cout<<endl;
}
return 0;
}