题目:输入多个城市的名字,按冒泡法排列好输出
我自己写了,但是只能排列一次。。高手指教
#include<stdio.h>
#include<string.h>
#define CITYNUM 5
void main()
{
int i,j,k,num;
char city[CITYNUM][20];
char str[80];
num=0;
for (i=0;i<CITYNUM;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=1;i<num;i++)
{
for (j=0;j<num-i;j++)
if ( stricmp ( city[j],city[j+1] )>0 )
{
strcpy(str,city[i]);
strcpy(city[i],city[k]);
strcpy(city[k],str);
}
for (i=0;i<CITYNUM;i++)
printf("%s\n",city[i]);
}
}
我试了好多次。。米办法了。。高手指教下。。谢谢