#include "stdio.h"
#include <string.h>
#define M 9//字符串最大长度,即二维数组的最大列数
#define N 5//最大行数
int main(void)
{
inti,j;
chartemp[M];
charstr[N][M]={"Pascal","Basic","Fortran","Java","VisualC"};
printf("befoesorted:\n");
for(i=0;i<N;i++)
{
puts(str[i]);
}
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(str[j]<str[i])
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
}
printf("aftersorted:\n");
for(i=0;i<N;i++)
{
puts(str[i]);
}
return0;
}
#include "stdio.h"
#include <string.h>
#define M 9
#define N 5
int main(void)
{
int i,j;
char temp[M];
char str[N][M]={"Pascal","Basic","Fortran","Java","Visual C"};
printf("befoe sorted:\n");
for(i=0;i<N;i++)
{
puts(str[i]);
}
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(strcmp(str[j],str[i])<0) /*改了*/
{
strcpy(temp,str[i]); /*改了*/
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
}
printf("after sorted:\n");
for(i=0;i<N;i++)
{
puts(str[i]);
}
return 0;
}
追问请问为什么要改成那部分?表示初学者不懂
追答在C语言中字符串的比较要用strcmp,返回-1,0,1分别表示小于、等于、大于;
字符串的复制要用strcpy