Aula 17Multiplicação de matrizes, mat1.c"Sopa de letras", sopa.c

"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

Aula 17Multiplicação de matrizes, mat1.c"Sopa de letras", sopa.c