解题思路:
1、本题从题干 上很直接可以得出其实是一个  排序问题,关键是在于 数字的比较 大家很好理解, 但是字符串的比较让人无从下手
2、strcmp(char* str1, char* str2)  函数在具体执行时,会按个比较字符的Assil 码,如果相同则返回0, 不同则返回 Assil 的差值,例如 
str1[10] - str2[10]   是‘a' -'b' 则差值为-1.  

备注: 其实这个函数我 也是看了 其他同学的分享 才想起起来相关的用法。
经验教训: 对于c 库函数不仅要知其然, 还要知其所以然。 我们用轮子的同时,第一步就是要明确这个轮子 到底能干些啥? 

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

int main(void) {
    
    char str[1000][101] = {0};
    unsigned nums = 0;
    scanf("%d", &nums);
    for (unsigned int i= 0; i < nums; i++) {
        scanf("%s", str[i]);
    }
    
    for (unsigned int i = 0; i< nums -1; i++) {
        char temp[101] = {0};
        unsigned int flag = 0;
        for (unsigned int j = 0; j < nums -1 -i; j++) {
            if (strcmp(str[j], str[j+1]) > 0) {
                strcpy(temp, str[j]);
                strcpy(str[j], str[j+1]);
                strcpy(str[j+1], temp);
                flag = 1;
            }
        }
        
        if (flag == 0) {
            break;
        }
    }
    
    for (unsigned int i = 0; i < nums; i++) {
        printf("%s\n", str[i]);
    }
    return 0;
}