题目:输入多个城市名字,按升序排序输出
难点:
1.怎么输入多个城市名
2.怎么对城市名进行排序
解决方法:
用到字符串,字符数组的知识点
1.定义一维字符数组,存放每次输入的那个城市名字符串
2.定义二维数组,存放所有的城市名字符串
3.用选择排序算法,对字符串进行排序,用到stricmp函数 和strcpy函数
#include<stdio.h>
#include<string.h>
void main()
{
int i,num=0,j,k;
char str[100];
char city[10][20];
for(i=0;i<10;i++)
{
printf("input the name of the %dth city: ",i+1);
gets(str);
if(str[0]==0) break;
if(strlen(str)>19)
{
i--;
continue;
}
strcpy(city[i],str);
num++;
}
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(strcmp(city[k],city[j])>0)
k=j;
if(k!=i)
{
strcpy(str,city[k]);
strcpy(city[k],city[i]);
strcpy(city[i],str);
}
}
for(i=0;i<10;i++)
printf("%s ",city[i]);
}
运行结果:
易错点:
gets();是能够识别到 空格的,输入时一定要用换行区分!!