打了好多遍都不对,有人给个答案参考一下么

.实现一个程序,输入一个数字n<100代表字符串的个数,输入若干行字符,将若干行字符按从长到短的顺序重新排序,并输出最长的一行的字符数


int main()
{
    int n;
    scanf("%d",&n);
    char a[n][24];
    int i;
    for (i=0;i<n;i++)
    {
        scanf("%s",a[i]);
    }
    //printf("%s",a);
    char max[24];
    for (i=0;i<n;i++) {
        for (int j=0;j<n-i;j++) {
            if(strlen (a[j])< strlen (a[j+1]))    //比较长度,短的换到后面
            {
                strcpy(max,a[j]);
                strcpy(a[j],a[j+1]);
                strcpy(a[j+1],max);
            }
        }
    }
    printf("%s",a);   
}