C语言问题字符串排序

来源:百度知道 编辑:UC知道 时间:2024/06/01 06:26:46
请各位师兄师姐帮我看看#include<stdio.h>
#include<string.h>
void main()
{
char a[4][20];
int i,j;
char *t;
for(i=0;i<4;i++)
scanf("%s",a[i]);
for(i=0;i<3;i++)
{for(j=0;j<3-i;j++)
{if(strcmp(a[j],a[j+1])>0)
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
}
for(i=0;i<4;i++)
printf("%s",a[i]);}
哪里有错,感谢!!~~

#include <string.h>
#include <stdio.h>

void main()
{
char a[4][20];
int i,j;
char t[20];
for(i=0;i<4;i++)
scanf("%s",a[i]);
for(i=0;i<3;i++)
{
for(j=0;j<3-i;j++)
{
if(strcmp(a[j],a[j+1])>0)
{
strcpy(t,a[j]);
strcpy(a[j], a[j+1]);
strcpy(a[j+1],t);
}
}
}
for(i=0;i<4;i++)
printf("%s\n",a[i]);
}

你对比一下

a[j]=a[j+1];a[j+1]=t错误在这里,=号的左操作数必需为左值,
可以像 痞子_无敌 那么改,但是我没搞清楚你程序的目的
所以那样该不一定符合你的要求

strcmp(a[j][0],a[j+1][0])