从键盘输入多个国家的名称,编写程序按字母顺序排列出场次序,并按出场顺序输出各国家名称。
输入格式:
第1行输入1个整数n(0≤n≤20),表示出场国家数量;之后 n行,每行输入1个国家名称(国家名称长度不超过20,可含空格)。
输出格式:
按字母序输出n行国家名称。若输入国家数n不合题意,则输出“Data Error”;若国家数为0,无输出。
输入样例:
5
Romania
United Kingdom
America
China
Brazil
输出样例:
America
Brazil
China
Romania
United Kingdom
代码:
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
char c[20][21];
if (n == 0)//若国家数为0,无输出
{
return 0;
}
if (n > 20 || n < 0)//若输入国家数n不合题意,则输出“Data Error”
{
printf("Data Error");
return 0;
}
gets(c[0]);//gets用法,若不写该行,下面的循环将读取一个换行符作为c[0]
for (int i = 0; i < n; i++)
{
gets(c[i]);
}
char temp[20];
for (int i = 0; i < n-1; i++)//比较法排序
{
for (int j = i + 1; j < n; j++)
{
if (strcmp(c[i], c[j]) > 0)
{
strcpy(temp, c[i]);
strcpy(c[i], c[j]);
strcpy(c[j], temp);
}
}
}
for (int i = 0; i < n; i++)
{
puts(c[i]);
}
return 0;
}