Openjudge-计算概论(A)-字符串排序
描述
参考整数排序方法,设计一种为字符串排序的算法,将字符串从小到大输出
输入
第一行为测试数据组数t, 后面跟着t组数据。每组数据第一行是n,表示这组数据有n行字符串,接下来是要排序的n行字符串。每行字符串的字符个数不会大于200, n < 100。
输出
对于每组数据,输出排好序的字符串,每组输出后要多输出一个空行
样例输入
2
2
Hello
World
4
I
Love
C
Language!
样例输出
Hello
World
C
I
Language!
Love
思路:这题可以把它们全部输入到一个二维数组里面去,再判断数字与字符串,我用的是另一种,逐个判断,排序,输出就得了。
代码如下:
1 #include<stdio.h> 2 #include<string.h> 3 void sort(char array[][202],int n)//排序函数 4 { 5 char temp[202]; 6 int i,j,k; 7 for(i=0;i<n-1;i++) 8 { 9 k=i; 10 for(j=i+1;j<n;j++) 11 if(strcmp(array[k],array[j])>0) 12 k=j; 13 if(k!=i) 14 { 15 strcpy(temp,array[i]); //字符串交换顺序(和数组一样一样的,不解释) 16 strcpy(array[i],array[k]); 17 strcpy(array[k],temp); 18 } 19 } 20 } 21 int main() 22 { 23 char str[202][202]; 24 int i,j,k=0,n,o; 25 scanf("%d",&o); 26 while(k!=o) 27 { 28 scanf("%d",&n); 29 for(i=0;i<n;i++) 30 { 31 scanf("%s",str[i]);//输入N个字符串 32 } 33 sort(str,n);//对输入的字符串排序 34 for(i=0;i<n;i++)//输出 35 { 36 printf("%s\n",str[i]); 37 } 38 k++; 39 } 40 return 0; 41 }
我不怕千万人阻挡,只怕自己投降…