[求助]二维数组问题
输入五个国家的名称按字母顺序排列输出# include<stdio.h>
#include<string.h>
void main()
{
char st[20],cs[5][20];
int i,j,p;
printf("input country's name:\n");
for(i=0;i<5;i++)
gets(cs[i]);
printf("\n");
for(i=0;i<5;i++)
{
p=i;strcpy(st,cs[i]);
for(j=i+1;j<5;j++)
{
if(strcmp(cs[j],st)<0)
{
p=j;
strcpy(st,cs[j]);
}
if(p!=i)
{
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}
}
puts(cs[i]);}printf("\n");
}
}
我输入了五个国家的名字之后看到的结果有前三个是按我要的顺序排列,后两个就造反了还是原来的顺序