课程设计,求代码、注释和流程图

设计一个函数,对n个字符串由大到小的顺序排
列,n由程序读入,字符串的输出和输入都在mai
n函数中进行。

#include <stdio.h>

//字符串比较函数
int mystrcmp(const char *str1,const char *str2)
{
    while(*str1 == *str2) {
        if(*str1 == '\0')
            return 0;
        str1++;
        str2++;
    }
    return *str1 - *str2;
}
//自己实现的字符串拷贝函数
char *mystrcpy(char *dest, const char *src)
{
    char *p=dest;
    while(*src != '\0') {
        *dest = *src;
        dest++;
        src++;
    }
    *dest = '\0';
    return p;
}
//按照字符串由大到小排序,冒泡排序
void sort(char str[][100], int n)
{
    int i, j;
    char t[100];
    for(i=0; i<n; i++) {
        for(j=0; j<n-1-i; j++) {
            if(mystrcmp(str[j], str[j+1]) < 0) { //前一个字符串比后一个要小,交换两个字符串
                mystrcpy(t, str[j]);
                mystrcpy(str[j], str[j+1]);
                mystrcpy(str[j+1], t);
            }
        }
    }
}
int main()
{
    int n, i;
    printf("请输入字符串个数:\n");
    scanf("%d", &n);
    char str[n][100];
    printf("请输入%d个字符串:\n", n);
    for(i=0; i<n; i++) {
        scanf("%s", str[i]);
    }
    sort(str, n);
    printf("排序后的字符串:\n");
    for(i=0; i<n; i++) {
        printf("%s\n", str[i]);
    }
    return 0;
}

字符串由大到小是指字符串长度吗,还是ASCII值呀

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

void sorts(char s[][100],int n)
{
    char t[100];
    for(int i=0;i<n-1;i++)
        for(int j=0;j<n-1-i;j++)
        {
            if(strcmp(s[j],s[j+1]) < 0)
            {
                  strcpy(t,s[j]);
                  strcpy(s[j],s[j+1]);
                  strcpy(s[j+1],t);
            }
        }
}

int main()
{
    char s[100][100];
    int n;
    scanf("%d",&n);
    getchar();
    for(int i=0;i<n;i++)
        gets(s[i]);
    sorts(s,n);
    for(int i=0;i<n;i++)
        puts(s[i]);
}

#include <stdio.h>

//自己实现的字符串比较函数
int mystrcmp(const char *str1,const char *str2)
{
    while(*str1 == *str2) {
        if(*str1 == '\0')
            return 0;
        str1++;
        str2++;
    }
    return *str1 - *str2;
}

//自己实现的字符串拷贝函数
char *mystrcpy(char *dest, const char *src)
{
    char *p=dest;
    while(*src != '\0') {
        *dest = *src;
        dest++;
        src++;
    }
    *dest = '\0';
    return p;
}

//按照字符串由大到小排序,冒泡排序
void sort(char str[][100], int n)
{
    int i, j;
    char t[100];
    for(i=0; i<n; i++) {
        for(j=0; j<n-1-i; j++) {
            if(mystrcmp(str[j], str[j+1]) < 0) { //前一个字符串比后一个要小,交换两个字符串
                mystrcpy(t, str[j]);
                mystrcpy(str[j], str[j+1]);
                mystrcpy(str[j+1], t);
            }
        }
    }
}

int main()
{
    int n, i;
    printf("请输入字符串个数:\n");
    scanf("%d", &n);
    char str[n][100];
    printf("请输入%d个字符串:\n", n);
    for(i=0; i<n; i++) {
        scanf("%s", str[i]);
    }
    sort(str, n);
    printf("排序后的字符串:\n");
    for(i=0; i<n; i++) {
        printf("%s\n", str[i]);
    }
    return 0;
}

#include<stdio.h>
#include<windows.h>
#pragma warning (disable:4996) 
void main()
{
    int a[100];
    int i;
    int n;
    printf("请输入需要排序的整数个数(不超过100个):");
    scanf("%d", &n);
    printf("请输入需要排序的整数(共%d个):",n);
    for (i = 0; i < n; i++){
        scanf("%d", &a[i]);
    }
    for (int j = 0; j < n-1; j++){
        for (i = 0; i < n-j-1; i++){
            if (a[i] < a[i + 1]){
                int j = a[i + 1];
                a[i + 1] = a[i];
                a[i] = j;
            }
        }
    }
    printf("\n输出排序后的数:");
    for (i = 0; i < n; i++){
        printf("%d ", a[i]);
    }
    printf("\n");
    system("pause");
}

#include <stdio.h>
//自己实现的字符串比较函数
int mystrcmp(const char *str1,const char *str2)
{
    while(*str1 == *str2) {
        if(*str1 == '\0')
            return 0;
        str1++;
        str2++;
    }
    return *str1 - *str2;
}
//自己实现的字符串拷贝函数
char *mystrcpy(char *dest, const char *src)
{
    char *p=dest;
    while(*src != '\0') {
        *dest = *src;
        dest++;
        src++;
    }
    *dest = '\0';
    return p;
}
//按照字符串由大到小排序,冒泡排序
void sort(char str[][100], int n)
{
    int i, j;
    char t[100];
    for(i=0; i<n; i++) {
        for(j=0; j<n-1-i; j++) {
            if(mystrcmp(str[j], str[j+1]) < 0) { //前一个字符串比后一个要小,交换两个字符串
                mystrcpy(t, str[j]);
                mystrcpy(str[j], str[j+1]);
                mystrcpy(str[j+1], t);
            }
        }
    }
}
int main()
{
    int n, i;
    printf("请输入字符串个数:\n");
    scanf("%d", &n);
    char str[n][100];
    printf("请输入%d个字符串:\n", n);
    for(i=0; i<n; i++) {
        scanf("%s", str[i]);
    }
    sort(str, n);
    printf("排序后的字符串:\n");
    for(i=0; i<n; i++) {
        printf("%s\n", str[i]);
    }
    return 0;
}