C语言:从键盘输入自己最喜欢的6道菜,然后按照字典顺序降序输出。要求使用指针数组实现排序。

C语言:从键盘输入自己最喜欢的6道菜,然后按照字典顺序降序输出。要求使用指针数组实现排序。

一个实现,供参考:


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

int  main(void){
    
    /**
        char * foods[6]={"cabbage","eggplant","potatoes",
    
                    "chili","fish","sweetpotato"} ;
    */
    char * foods[6] ;
    int i,j;
    char likefoods[6][20];
    printf("请输入你最喜欢的6道菜:\n");
    for(i=0;i<6;i++){  //获取输入到喜欢的菜的二维字符数组中,并把每道菜名字的地址赋值给指针数组的每个元素 
        scanf("%s",likefoods[i]);
        foods[i]=likefoods[i];
    }
     

    char temp[20]; 
    for(i=0;i<5;i++){
        for(j=i;j<6;j++){  
            
            if(strcmp(*(foods+i),*(foods+j))<0){  //按降序排序菜肴名字,比较指针数组的元素你指向的菜肴字符串的ASCII码字典顺序 
                strcpy(temp,*(foods+i));
                strcpy(*(foods+i),*(foods+j));
                strcpy(*(foods+j),temp);
            }
        } 
    }    
    
    printf("排序后的结果:\n"); //打印排序结果 
    for(i=0;i<6;i++){
        printf("%s\n",*(foods+i));
    }    
    
    return 0;
    
}

img