题目描述:
输入十个国家的英文名字,然后按照字典序大小从小到大依次输出。
输入样例:
Ireland
Poland
Germany
France
Norway
Korea
Malaysia
Thailand
China
Brazil
输出样例:
Brazil
China
France
Germany
Ireland
Korea
Malaysia
Norway
Poland
Thailand
题目分析:
我们知道,二维数组在内存中存放时是一条直线。比如说在二维数组char[100][60]中该二维数组由一维数组组成,即char[0]表示二维数组的第一行数组,内存为第一行数组开辟了60个字符大小的空间。因此在本题中可以用二维数组存放国家的地址。
代码如下:
#include <stdlib.h>
#include <string.h>
int main()
{
char a[10][100];
int i,j;
for(i=0;i<10;i++)
scanf("%s",a[i]); //输入国家的英文名
char b[100];
for(i=0;i<9;i++) //使用冒泡法进行排序
{
for(j=0;j<9-i;j++)
{
if(strcmp(a[j],a[j+1])>=0)
{
strcpy(b,a[j]); //strcpy函数使用时需要包含头文件#include<string.h>
strcpy(a[j],a[j+1]);
strcpy(a[j+1],b);
}
}
}
for(i=0;i<10;i++) //输出排序好的国家名
printf("%s\n",a[i]);
return 0;
}