C语言程序:从键盘上输入n个字串,找出长度最大的字串

从键盘上输入n个字串,找出长度最大的字串

输入格式:

输入包含多个测试实例,数据的第一行是一个整数n(0<n<=10),表示字串个数,然后是n行输入数据,每行是其中一个字串,字串的长度不超过15,n=0结束输入。

输出格式:长度最大的串

我的解答思路和尝试过的方法
# include <stdio.h>
# include <string.h>

void main ()
{
    int n,i,j=0;
    char a[100][100];
    while(scanf("%d",&n)!=0){
    for(i=0;i<n;i++){
    scanf("%s",a[i]);

    for(i=0;i<n;i++){
        if(strcmp(a[i],a[j])>0){
            j=i;
        }
    }
    }
    printf("%s\n",a[i]);

}return 0;
}


我想要达到的结果

5
abcd
abcde
a
abc
abcde
abcde

供参考:

#include <stdio.h>
#include <string.h>
int  main ()
{
    int n,i,j=0;
    char a[16]={0},b[16]={0};
    scanf("%d",&n);
    getchar();
    while(n--)
    {
         gets(a);
         i=strlen(a);
         if(i>j)
         {
            j=i;
            strcpy(b,a);
         }
    }
    puts(b);
    return 0;
}