Parole crociate 

Run Settings
LanguageC
Language Version
Run Command
//ovviamente il programma non parte, copiare in compilatore come //codeblocks #include <stdio.h> #include <stdlib.h> #include <string.h> int main (int argc, char *argv[]) { const int MAXR=24; const int MAXC=70; FILE *f; char mappa[MAXR][MAXC+1]; int nr=0; int n=0; int l, nc, i, j, k; if (argc != 3) { fprintf (stderr, "errore - introdurre nome file e parola da cercare\n"); exit (1); } if ((f=fopen(argv[1],"r")) == NULL) { fprintf (stderr, "errore - impossibile aprire il file %s in lettura\n", argv[1]); exit (1); } while (fgets(mappa[nr], MAXC+1, f) != NULL) { // printf("riga %d: %s\n", nr, mappa[nr]); nr++; } if (fclose(f) != 0) fprintf (stderr, "avviso - impossibile chiudere il file '%s'\n", argv[1]); nc=strlen(mappa[0]) - 1; l= strlen(argv[2]); for(i=0; i<nr && n==0; i++) for(j=0; j< nc && n==0; j++) { if (mappa[i][j] == argv[2][0]) { // printf("%d%d\n", i,j); for(k=1; k<l+1 && j+k<nc; k++) if(mappa[i][j+k] != argv[2][k]) break; if(k==l) { n++; printf("Parola trovata: %s - orizzontale - riga %d\n", argv[2], i+1); printf("Inizio: colonna %d - Fine: colonna %d\n", j+1 , j+l); } for(k=1; k<l+1 && j-k>=0; k++) if(mappa[i][j-k] != argv[2][k]) break; if(k==l) { n++; printf("Parola trovata: %s - orizzontale - riga %d\n", argv[2], i+1); printf("Inizio: colonna %d - Fine: colonna %d\n", j+1 , j-l+2); } for(k=1; k<l+1 && i+k<nr; k++) if(mappa[i+k][j] != argv[2][k]) break; if(k==l) { n++; printf("Parola trovata: %s - verticale - colonna %d\n", argv[2], j+1); printf("Inizio: riga %d - Fine: riga %d\n", i+1 , i+l); } for(k=1; k<l+1 && i-k>=0; k++) if(mappa[i-k][j] != argv[2][k]) break; if(k==l) { n++; printf("Parola trovata: %s - verticale - colonna %d\n", argv[2], j+1); printf("Inizio: riga %d - Fine: riga %d\n", i+1 , i-l+2); } } } if (n==0) printf("Parola non trovata: %s\n", argv[2]); return 0; }
qqaaacazbxq wwwcccsbrrb edddddaeeba dddbaccwerr asdsfffgfgh
Editor Settings
Theme
Key bindings
Full width
Lines