come compilatore uso DevC++
codice:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define DIM 10

int k=0,righe=0,colonne=0,t=0;

typedef enum {FALSE,TRUE} bool;

void stampa(char lista[DIM][DIM]){
  int m = 0,n = 0;
  printf("\n\n");
  while(m<DIM){
    while(n<DIM){
      printf("%c",lista[m][n]);
      n++;
    }
    m++;
    n=0;
    printf("\n");
  }
  printf("\n\n\n");
}

void array_da_file(char nomeFile[],char griglia[DIM][DIM]){
  FILE* fp;
  int i=0,j=0;
  char trash;
  fp = fopen(nomeFile,"r");
  while(!feof(fp)){
    if(j>DIM-1)
    {
        i++;
        j=0;
        fscanf(fp,"%c", &trash);
    }
    else{
        fscanf(fp,"%c", &griglia[i][j]);
        j++;
    }
    
    fflush(stdout);
  }
  fclose(fp);
  printf("\n\n");
}

void cerca_aux(char parola[100],int m,int lung,char griglia[DIM][DIM],int i,int j){
  while(m < lung){ //printf ("\n Sono dentro il while...");
    if((i!=0)&&(j!=0)&&(griglia[i-1][j-1] == parola[m])) {
      m++; i--; j--;
      cerca_aux(parola,m,lung,griglia,i,j);
      //printf("%C",griglia[i][j]);
    }
    else //printf (".");
    if((i!=0)&&(griglia[i-1][j] == parola[m])) {
      m++; i--;
      cerca_aux(parola,m,lung,griglia,i,j);
      //printf("%C",griglia[i][j]);
    }
    else //printf (".");
    if((j<DIM)&&(i!=0)&&(griglia[i-1][j+1] == parola[m])) {
      m++;i--;j++;
      cerca_aux(parola,m,lung,griglia,i,j);
      //printf("%C",griglia[i][j]);
    }
    else //printf (".");
    if((j<DIM)&&(griglia[i][j+1] == parola[m])) {
      m++;j++;
      cerca_aux(parola,m,lung,griglia,i,j);
      //printf("%C",griglia[i][j]);
    }
    else //printf (".");
    if((i<DIM)&&(j<DIM)&&(griglia[i+1][j+1] == parola[m])) {
      m++;i++;j++;
      cerca_aux(parola,m,lung,griglia,i,j);
      //printf("%C",griglia[i][j]);
    }
    else //printf (".");
    if((i<DIM)&&(griglia[i+1][j] == parola[m])) {
      m++;i++;
      cerca_aux(parola,m,lung,griglia,i,j);
      //printf("%C",griglia[i][j]);
    }
    else //printf (".");
    if((i<DIM)&&(j!=0)&&(griglia[i+1][j-1] == parola[m])) {
      m++;i++;j--;
      cerca_aux(parola,m,lung,griglia,i,j);
      //printf("%C",griglia[i][j]);
    }
    else //printf (".");
    if((j!=0)&&(griglia[i][j-1] == parola[m])) {
      m++;j--;
      cerca_aux(parola,m,lung,griglia,i,j);
      //printf("%C",griglia[i][j]);
    }
    else //printf (".");
    m=lung;
    printf("%C",griglia[i][j]);
  }
}

void cerca(char parola[100],char griglia[DIM][DIM],int k,int righe,int colonne){
  int lung = strlen(parola);
  for(righe; righe<DIM; righe++){
  //printf ("\n");
    for(colonne; colonne<DIM; colonne++){ //cicla sulla matrice
      if(griglia[righe][colonne] == parola[k]){
        k++;
        cerca_aux(parola, k, lung, griglia, righe, colonne);
        //printf("%C",griglia[righe][colonne]);
        k = 0;
      }
      else printf("."); //stampo il puntino
    }
    colonne = 0;
    printf("\n");
  }
}      

int main(int argc, char *argv[])
{
  char griglia[DIM][DIM];
  char search[100];
  char nomeFile[15];
  printf("\nInserisci il nome del file dal quale scaricare la griglia\n\n");
  scanf("%s",&nomeFile);
  array_da_file(nomeFile,griglia);
  stampa(griglia);
  
  printf("\nInserisci la parola da cercare nella griglia\n\n");
  scanf("%s",&search);
  cerca(search,griglia,0,0,0);
  

  
  system("PAUSE");	
  return 0;
}
Scusatemi se non sono molto esperto, ma la fretta e l'incasinamento dell'ultima ora in questo esercizio........ :maLOL:

Confido in voi!

La parte dove dà problemi l'esercizio è quando nel main richiamo la funzione cerca(parametri...). Praticamente non riesco ad aggiustare la stampa delle varie alternative che si riescono a trovare nelle 8 caselle contigue. La ricerca viene effettuata dalle funzioni cerca e cerca_aux, che teoricamente dovrebbero trovare la prima lettera della parola inserita dall'utente e poi ricorsivamente trovare tutte le alternative, e stamparle come avevo scritto nel primo messaggio.
Cioè con un puntino al posto delle lettere che non fanno parte della parola e le lettere della parola maiuscole...
Spero di esser stato un po' più chiaro, in caso contrario perdonate la mia inesperienza!