用指针数组求解。
#include <stdio.h> #include <string.h> int main(){ void sort(char * p[5]); char arr[5][20]; char * p[5]; int i; for(i=0; i<5; i++){ gets(arr[i]); p[i]=arr[i]; } //排序 sort(p); printf("排序后:\n"); for(i=0; i<5; i++){ puts(p[i]); } return 0; } void sort(char * p[5]){ int i,j; char * t; for(i=5; i>0; i--){ for(j=0; j<i-1; j++){//冒泡 if(strcmp(p[j],p[j+1]) > 0) { t=p[j]; p[j]=p[j+1]; p[j+1]=t; } } } }
结果: