UVA455 水题,然而小弟我总是WA,实在是检查不出来了,各位帮忙看看吧

UVA455 水题,然而我总是WA,实在是检查不出来了,各位帮忙看看吧
在下新手,之前用break貌似出了点问题所以用了goto,请勿见怪。。。。UVA455 水题,然而小弟我总是WA,实在是检查不出来了,各位帮忙看看吧
通过了我自己测的N组数据,输出时候的空格什么的也注意了,参照了别人AC的代码,感觉输出完全相同,然而就是AC不了
下面是代码,帮帮忙看看谢谢啦各位
#include<stdio.h>
#include<string.h>
int main()
{
int n,T,i,k,OK,length;
char a[100]={0};
scanf("%d",&n);
while(n--)
{
scanf("%s",a);
length=strlen(a);
    for(T=1;T<length;T++)//以T为周期
    {
        for(k=0;k<T;k++)//以k表示对在一个周期串时的位置
        {
            for(i=k;i+T<length;i=i+T)//下标表示正在检查的位置
            {
            if(a[i]!=a[i+T])goto l;//检验,若不相同,跳出循环,并在第21行跳出关于当前T的循环
            else continue;
            }
        }
    goto m;
    l:;
    }
   m:printf("%d\n",T);if(n)printf("\n");
}
return 0;
}
------解决思路----------------------
LZ程序 对于如下输入不能输出正确结果:
aba
abca
abcda
abcdea