//下列程序的功能是对5个字符按从小到大排序
#include<stdio.h>
#include<string.h>
main()
{
char a[5][10],t[10];
int i,j,k;
for(i=0;i<5;i++)
scanf("%s",&a[i]);
for(i=0;i<5;i++)
{
k=i;
for(j=i+1;j<5;j++)
if(a[i]>a[j])
k=j;
if(k==i)
{
strcpy(t,a[k]);
strcpy(a[k],a[i]);
strcpy(a[i],t);
}
}
for(i=0;i<5;i++)
printf("%s\n",a[i]);
}
我这个程序有哪个语句写错了吗,运行结果不对
供参考:
#include<stdio.h>
#include<string.h>
main()
{
char a[5][10],t[10];
int i,j,k;
for(i=0;i<5;i++)
scanf("%s",a[i]);//scanf("%s",&a[i]);
for(i=0;i<5;i++)
{
k=i;
for(j=i+1;j<5;j++)
if(strcmp(a[k],a[j])>0)//if(a[i]>a[j])
k=j;
if(k!=i) //if(k==i)
{
strcpy(t,a[k]);
strcpy(a[k],a[i]);
strcpy(a[i],t);
}
}
for(i=0;i<5;i++)
printf("%s\n",a[i]);
}
#include<stdio.h>
#include<string.h>
main()
{
char a[5][10],t[10];
int i,j;
for(i=0;i<5;i++)
scanf("%s",a[i]);//a[i]就是字符串首地址,不需要加&
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
if(strcmp(a[i],a[j])>0)//字符串比较大小用strcmp函数
{//满足条件直接交换
strcpy(t,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],t);
}
}
}
for(i=0;i<5;i++)
printf("%s\n",a[i]);
}