总是90分,不知道最后一个错误在哪里

相信大家都玩过单词接龙。小明的爸爸设计了一个单词接龙密码,连续两个单词,前一个的尾字母和后一个的首字母必须相同(“acm”后面可以接如“motorola”)。若能把所有的单词都连起来,那么就可以解开密码,拿到零花钱。
现在有N天,就有N个密码。现在请你帮忙给出,小明有多少天可以拿到零花钱。

Input

第一行一个整数T(1<=T<=10)表示天数。
每天第一行一个整数N(1<=N<=100000)表示单词个数。
接下来N行,每行一个由小写字母构成的单词,单词长度在[2,1000]。

Output

T行,输出“Yes”或者“No”,表示能否解开密码。

Sample Input

3
2
acm
ibm
3
acm
malform
mouse
2
ok
ok

Sample Output

No
Yes
No


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

char ch[21000] = { '\0' };
char c[2] = { 0 };
int main()
{
    int t;
    scanf("%d", &t);
    while (t--)
    {
        int n;
        scanf("%d", &n);
        int i = 0;
        int flag = 1;
        getchar();
        while ( i < n)
        {
            gets(ch);
            int a = strlen(ch);
            if (i==0)
            {
                c[0] = ch[a - 1];
            }
            else
            {
                c[1] = ch[0];
                if (c[1]!=c[0])
                {
                    flag = 0;
                }
                c[0] = ch[a-1];
            }
            i++;
        }
        if (!flag)
        {
            printf("no\n");
        }
        else
        {
            printf("yes\n");
        }
    }
    return 0;
}