c语言,使用冒泡法将字符排序

将字符进行降序或升序排序,哪里出问题了?
为什么运行不出来?求帮忙修改一下。

img

首先定义字符串数组可以用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;
}