将字符进行降序或升序排序,哪里出问题了?
为什么运行不出来?求帮忙修改一下。
首先定义字符串数组可以用char * a[6] ,然后比较字符串大小要用strcmp, 然后改变了下for循环的判断,如下:
#include <stdio.h>
#include <string.h>
int main(){
int j,i;
char * temp ;
char *a [6] ={
"langugage.c",
"main,main.o",
"land.bmp",
"MinGW.tar",
"tianjianxun",
"tianjianxun"
};
// printf("1\n");
for(j=0;j<5;j++){
//printf("2\n");
for(i=j+1;i<6;i++){
//printf("3\n");
if(strcmp(a[i],a[j])<0){
// printf("i=%d,j=%d,a[%d]=%s,a[%d]=%s\n",i,j,i,a[i],j,a[j]);
// printf("after change,i=%d,j=%d,a[%d]=%s,a[%d]=%s\n",i,j,i,a[i],j,a[j]);
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for(i=0;i<6;i++){
printf("%s\n",a[i]);
}
return 0;
}