字符串排序的算法,将字符串从小到大输出
样例输入
2
2
Hello
World
4
I
Love
C
Language!
样例输出
Hello
World
C
I
Language!
Love
code:
#include<stdio.h>
#include<string.h>
int main()
{
int t,n;
int k,i,j,m;
char a[101][201],temp[201];
freopen("5.in","r",stdin);
//freopen("result.out","w",stdout);
scanf("%d",&t);
for(k=0;k<t;k++)
{
scanf("%d",&n);
getchar();//接收上一行scanf的回车符
for(i=0;i<n;i++)
gets(a[i]);//scanf("%s",a[i]);无法接收含有空格的字符串,所以这个题用scanf会Wrong Answer。
//下面是选择排序
for(i=0;i<n-1;i++)
{
m=i;
for(j=i+1;j<n;j++)
{
if(strcmp(a[j],a[m])<0)
{
m=j;
}
}
if(i!=m)//这里交换两行字符串
{
strcpy(temp,a[i]);
strcpy(a[i],a[m]);
strcpy(a[m],temp);
}
}
//下面输出结果
for(i=0;i<n;i++)
printf("%s\n",a[i]);
if(k!=t-1) printf("\n");/**/
}
return 0;
}