Si vuole simulare la gestione di un dizionario dei sinonimi. Il dizionario è indicizzato tramite le lettere dell’alfabeto ed ogni parola contiene i suoi sinonimi (massimo 5).
L’utente deve inserire una frase dove ogni parola è separata da uno spazio
Il programma riconosce ogni singola parola e chiede all’utente se vuole cercare nel dizionario il suo sinonimo. Se la risposta è affermative il programma sostituisce la parola con il suo sinonimo.
Provvedere all’implementazione dell’algoritmo che data una frase ritorna una nuova frase con i sinonimi al posto delle parole decise dall’utente. Effettuare almeno 3 test.

codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Dizionario
{
        char indice;
        struct {
               char parola [20];
               struct {
                      char sinonimi [20];
                      } s[5];
                      } p[4];
                      }d;
                      int i=0,f=0,c=0;
int main(void)
{
    FILE *ofp;
    d dizionario [2];
    ofp=fopen ("dizionario.txt","r");
    i=0;
    while (i !=2) {
          if (i == 0) {
                dizionario [i].indice='a';
                }
                if (i == 1) {
                      dizionario [i].indice='b';
                      }
                      fprintf (ofp,"%c\n",dizionario [i].indice);
                      c=0;
                      while (c != 4) {
                            printf ("i=%d,c=%d",i,c);
                            printf ("\n inserisci la %d parola dell' indice %c: ",c,dizionario[i].indice);
                            scanf ("%s",dizionario [i].p[c].parola);
                            fprintf (ofp,"%s\n",dizionario [i].p[c].parola);
                            f = 0;
                            while (f != 5) {
                                  printf ("\n inserisci il %d sinonimo della parola %s:",f,dizionario[i].p[c].parola);
                                  scanf ("%s", dizionario[i].p[c].s[f].sinonimi);
                                  fprintf (ofp, "%s\n", dizionario [i].p[c].s[f].sinonimi);
                                  f++;
}
c++;
}
i++;
}
fclose (ofp);
  system("PAUSE");	
  return 0;
}
ragazzi il programma viene compilato ma non eseguito, perchè? grazie per la risposta