编写程序,对输入的若干单词按词典排序,不区分大小写(注意是自己编写函数,不能使用系统的字符串处理库函数) 在主函数中输入单词,调用函数排序,在主函数中输出结果c语言

编写程序,对输入的若干单词按词典排序,不区分大小写。要求字符串的比较、复制、大小写转换、排序等工作均用函数实现(注意是自己编写函数,不能使用系统的字符串处理库函数)。
在主函数中输入单词,调用函数排序,在主函数中输出结果。字符串个数不超过100个,每个单词的长度不超过20。
输入格式:
两行:第1行为单词个数n,第2行为n个单词,用空格隔开。
输出格式:
n行,每行一个单词。
输入样例:
5
sin Cos log exp sqrt
输出样例:
Cos
exp
log
sin
sqrt

我写的没有输出,求帮忙改一哈

c代码如下# include <stdio.h>
int main()
{
int i,j,n;
char d;
char arr[50][20];

void order(char*a[50][20],int n);

scanf("%d\n",&n);

for(i=0;i<50;i++)//每个元素都取'0' 
{
    for(j=0;j<20;j++)
    {
        arr[i][j]='0';
    }
}

for(i=0;i<50;i++)//输入字符串,并存为每一行一个字符串 
{
    for(j=0;j<20;j++)
    {
        scanf("%c",&arr[i][j]);
        d=arr[i][j];
        if(d==' '||d=='\n')
        {
            arr[i][j]='\0';
            break;
        }
        else 
        arr[i][j]=d;
    }
    if(d=='\n')
    break;
}


order(arr[50][20],n);


for (i=0;i<n;i++)
{
    for (j=0;j<20;j++)
    {
        if(arr[i][j]=='0')
        {
            printf("\n");
        }
        
        else
        printf("%c",arr[i][j]);
    }
}
return 0;

}

void order(char*a[50][20],int n)
{
int i,j,k,m;
char t;
for (i=0;i<n;i++)//遍历每一行的字符串
{
for (k=0;k<n;k++)//遍历每一行的字符串与第i个比较
{
for (j=0;j<20;j++)//遍历每一个字符串的字符
{
if(a[i][j]>='A'&& a[i][j]<='Z'&&a[k][j]>='a'&& a[k][j]<='z')//第i行的字符串某个字符是大写;k行的相应位置字符是小写
{

            if(a[i][j]+32==a[k][j])
            {
                continue;
            }
            if(a[i][j]+32>a[k][j])//前者比后者大 
            {
                for(m=0;m<20;m++)// 交换 
                {
                    t=a[k][m];
                    a[k][m]=a[i][m];
                    a[i][m]=t;
                }
            }
            
            }
            if(a[i][j]>='a'&& a[i][j]<='z'&&a[k][j]>='A'&& a[k][j]<='Z')//第i行的字符串某个字符是小写;k行的相应位置字符是大写 
            { 
            
            if(a[i][j]==a[k][j]+32)
            {
                continue;
            }
            if(a[i][j]>a[k][j]+32)
            {
                for(m=0;m<20;m++)
                {
                    t=a[k][m];
                    a[k][m]=a[i][m];
                    a[i][m]=t;
                }
            }
            
            }
            
            else//小写与小写,大写与大写的情况 
            {
                
            if(a[i][j]==a[k][j])
            {
                continue;
            }
            if(a[i][j]>a[k][j])
            {
                for(m=0;m<20;m++)
                {
                    t=a[k][m];
                    a[k][m]=a[i][m];
                    a[i][m]=t;
                }
            }
            
            }
        }
    }
}

}

img

img