【c语言】希望实现一个5x5方格里面不管横着读还是竖着读都是一个英文单词,不知道哪里错了

结果就是这样一直不动了
结果就是这样一直不动了
注:txt文档里已经是筛选好的大英词典里所有5个字母的单词

#include <stdio.h>
#include<string.h>
int main()
{
FILE *fp;
int i,j,k,a,b,c,d,e,a1=0,b1=0,c1=0,d1=0,e1=0;
char words[10000][21],zi[5][6],jie[5][6];//最多读100个单词,每个单词不超过20个字符
fp=fopen("D:\\5.txt","r");
if (fp==NULL)
{
printf("open file error\n");
return -1;
}
for(i=0;i<10000;i++)//循环读取,控制不超过100个
{
if(fscanf(fp,"%20s",words[i])!=1)//控制每个单词不超过20个
break;
}
fclose(fp);
for(a=0;a<i;a++)//反向输出各单词
{
    for(b=0;b<i;b++)
    {
        for(c=0;c<i;c++)
        {
            for(d=0;d<i;d++)
            {
                for(e=0;e<i;e++)
                {
strcpy(zi[0],words[a]);
strcpy(zi[1],words[b]);
strcpy(zi[2],words[c]);
strcpy(zi[3],words[d]);
strcpy(zi[4],words[e]);
for(j=0;j<5;j++)
{
    for(k=0;k<5;k++)
    {
        jie[j][k]=zi[k][j];
    }
}
for(j=0;j<5;j++)
{
    jie[j][5]='\0';
}
a1=0,b1=0,c1=0,d1=0,e1=0;
for(j=0;j<i;j++)
{
    if(strcmp(jie[0],words[j])==0)
    {a1++;continue;}
}
for(j=0;j<i;j++)
{
    if(strcmp(jie[1],words[j])==0)
    {b1++;continue;}
}
for(j=0;j<i;j++)
{
    if(strcmp(jie[2],words[j])==0)
    {c1++;continue;}
}
for(j=0;j<i;j++)
{
    if(strcmp(jie[3],words[j])==0)
    {d1++;continue;}
}
for(j=0;j<i;j++)
{
    if(strcmp(jie[4],words[j])==0)
    {e1++;continue;}
}
if(a1&&b1&&c1&&d1&&e1)
printf("ssss");


                }
            }
        }
    }
}
return 0;
}

现在程序运行不报错,但程序结果什么也没有(就是一片空白,回车也不会结束),不知道哪里错了,请大家指点一二,感激不尽!

你是想从一堆单词中找出 回文词?比如 wow deed 这种?压根不需要这么多循环啊!

请在Debug模式下单步执行一下看看~