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;
}