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: