①编写函数 void input(char str[][N],int m)输入 m 个国名;
②编写函数 void print(char str[][N],int m)输出 m 个国名;
③编写函数 CountrySort(char str[][N],int m)对 m 个国名按字母字典序排序;
④在主函数中调用 input()函数输入 10 个国名,然后调用 CountrySort()函数进行排序,
最后调用 print()函数输出排序后的结果。
附上我写的程序代码,请问为什么输入单个字母运行以后没有排序?还是像原来的顺序输出。每行输入多个字母以后,排序就混乱了。
我的代码:
#include<stdio.h>
#include<string.h>
#define M 3
#define N 100
void input(char str[][N],int m)
{
int i;
for(i=0;i<m;i++)
gets(str[i]);
}
void CountrySort(char str[][N],int m)
{
char t[M][N];int a,k,i,j=0;
for(k=m-1;k>0;k--)
for(i=0;i<k;i++)
{
a=str[i][j]-str[i+1][j];
if(a>0)
{
strcpy(t[i],str[i]);
strcpy(str[i],str[i+1]);
strcpy(str[i+1],t[i]);
j=0;
}
if(a==0)
{
i--;j++;
}
}
}
void print(char str[][N],int m)
{
int i;
for(i=0;i<m;i++)
puts(str[i]);
}
int main()
{
char str[M][N];
input(str,M);
CountrySort(str,M);
printf("\n");
print(str,M);
return 0;
}