//本题考查的是二维数组的应用和strcmp和strcpy
仅需对输入的字符串进行排序便可。
点击查看代码
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
char a[20][50],t[50];
int n, i, j ;
while (scanf("%d ", &n) != EOF)//%d后面加一个空格可以吸收在输入n后的回车(不知道是为什么这题打getchar()是错的)
{
//getchar();
for (i = 0; i < n; i++)
{
gets(a[i]);
}
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
if (strcmp(a[i], a[j]) > 0)//比较
{
strcpy(t, a[i]);//交换
strcpy(a[i], a[j]);
strcpy(a[j], t);
}
}
}
for (i = 0; i < n; i++)
{
printf("%s\n", a[i]);
}
printf("\n");//注意题目说明两组数据之间要有空行
}
return 0;
}