"Sopa de letras", sopa.c
#define N 5
#define DIRS 8
int
dx[]={1,1,0,-1,-1,-1,0,1},
dy[]={0,1,1,1,0,-1,-1,-1};
//-----------------------------
void proc(char pal[],char sopa[][N],int i, int j,int d){
int m=0,i0=i,j0=j;
while(i>=0 && i<N && j>=0 && j<N && pal[m]==sopa[i][j]){
i+=dy[d];
j+=dx[d];
m++;
}
if(!pal[m])
printf("Linha %d, coluna %d, direcção %d\n",i0,j0,d);
}
//-----------------------------
void procura(char pal[],char sopa[][N],int d){
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
proc(pal,sopa,i,j,d);
}
//-----------------------------
int main(){
int d;
char
sopa[][N]={
{'b','a','b','a','r'}, // 0
{'c','a','b','a','r'}, // 1
{'d','a','b','a','r'}, // 2
{'b','a','b','a','r'}, // 3
{'r','a','b','a','b'} // 4
},
pal[N];
scanf("%s",pal);
for(d=0;d<DIRS;d++)
procura(pal,sopa,d);
return 0;
}
PC/PI - página reservada - versão 2005.02.08