10.12在主函数中输入10个等长的字符串。用另一个函数对它们排序,然后在主函数输出这10个已排好序的字符串。

用指针数组求解。

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

 

结果:

posted @ 2017-08-02 20:24  Allen101  阅读(1570)  评论(0编辑  收藏  举报