简单整理一下你的程序
你的程序写的太乱了
看了有点晕
#include "stdio.h"
#include "string.h"
main()
{
int n,m,i,j,k,p,q,s,k1,l,sig,num,r;
char a[200][200],b[200][200],ch;
scanf("%d",&num);//输入几组单词表/
ch=getchar();
ch=getchar();
s=0;
do
{
scanf("%d %d",&m,&n);//单词表的行数列数/
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf(" %c",&a[i][j]);//输入单词表中字母/
scanf("%d",&k);//被寻找单词的个数/
k1=0;
do
{
scanf("%s",b[k1]);//输入被寻找的单词/
l=strlen(b[k1]);
for(i=0;i<m;i++)//一个个从首字母进行寻找判断/
for(j=0;j<n;j++)
{
if(a[i][j]==b[0][0])
{
sig=1;//标志变量/
{
if(l<=n-j) //当首字母相同的时候从八个方向进行寻找/
{
for(p=0,q=j;p<l;p++,q++)
if(a[i][q]!=b[k1][p]) //比较每个方向上的各个字符是否与单词相同,不同时跳出循环/
{
sig=0;
break;
}
}
else
sig=0;
if(sig==1) //包含单词时时输出字母表中的对应的与被找单词相同的第一个字母的位置/
{
printf("%d %d\n",i+1,j+1);
goto t; //想跳出循环但是用break跳不出整个,就用了goto/
}
}
{
if(l<=j+1)
{
for(p=0,q=j;p<l;p++,q--)
if(a[i][q]!=b[k1][p])
{
sig=0;
break;
}
}
else
sig=0;
if(sig==1)
{
printf("%d %d\n",i+1,j+1);
goto t;
}
}
{
if(l<=i+1)
{
for(p=0,q=i;p<l;p++,q--)
if(a[q][j]!=b[k1][p])
{
sig=0;
break;
}
}
else
sig=0;
if(sig==1)
{
printf("%d %d\n",i+1,j+1);
goto t;
}
}
{
if(l<=m-i)
{
for(p=0,q=i;p<l;p++,q++)
if(a[q][j]!=b[k1][p])
{
sig=0;
break;
}
}
else
sig=0;
if(sig==1)
{
printf("%d %d\n",i+1,j+1);
goto t;
}
}
{
if(l<=n-j&&l<=m-i)
for(p=0,q=i,r=j;p<l;p++,q++,r++)
{
if(a[q][r]!=b[k1][p])
{
sig=0;
break;
}
}
else
sig=0;
if(sig==1)
{
printf("%d %d\n",i+1,j+1);
goto t;
}
}
{
if(l<=i+1&&l<=j+1)
{
for(p=0,r=j,q=i;p<l;p++,r--,q--)
if(a[q][r]!=b[k1][p])
{
sig=0;
break;
}
}
else
sig=0;
if(sig==1)
{
printf("%d %d\n",i+1,j+1);
goto t;
}
}
{
if(l<=m-i&&l<=j+1)
for(p=0,r=j,q=i;p<l;p++,r--,q++)
{
if(a[q][r]!=b[k1][p])
{
sig=0;
break;
}
}
else
sig=0;
if(sig==1)
{
printf("%d %d\n",i+1,j+1);
goto t;
}
}
{
if(l<=i+1&&l<=n-j)
for(p=0,r=j,q=i;p<l;p++,r++,q--)
{
if(a[q][r]!=b[k1][p])
{
sig=0;
break;
}
}
else
sig=0;
if(sig==1)
{
printf("%d %d\n",i+1,j+1);
goto t;
}
}
}
}
t: ;
k1++;
}while(k1<k);
s++;
}while(s<num);
}