Advertisement
Guest User

Untitled

a guest
May 23rd, 2015
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.06 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <strings.h>
  3. #define NCODICI 100
  4. #define DIMSEQUENZA 80
  5.  
  6. typedef struct{
  7.     char sequenza[DIMSEQUENZA];
  8.     }Codice;
  9.  
  10. typedef struct{
  11.     Codice codice[NCODICI];
  12.     int n;
  13.     }Pizzino;
  14.  
  15. void apriPizzino(FILE *filePizzino, Pizzino *pizzino){
  16.     int i;
  17.     fscanf(filePizzino,"%d ",&pizzino->n);
  18.     for(i=0;i<pizzino->n;i++)
  19.                              fgets(pizzino->codice[i].sequenza,DIMSEQUENZA,filePizzino);
  20.     }
  21.  
  22. int cerca(char v1[], char v2[], int i){
  23.     int j;
  24.     for(j=0;j<strlen(v1);j++){
  25.                               if(v1[i]==v2[j])
  26.                               return 1;
  27.                               }
  28.     return -1;
  29. }
  30.  
  31. //Torna 1 se sono anagrammi, 0 altrimenti
  32. int isAnagramma (char v1[], char v2[]){
  33.     int i;
  34.     if(strlen(v1)!=strlen(v2))
  35.                               return 0;
  36.     else{
  37.          for(i=0;i<strlen(v1);i++){
  38.                                    if(cerca(v1,v2,i)==-1)
  39.                                    return 0;
  40.                                    }
  41.          return 1;
  42.          }
  43. }
  44.  
  45. main(){
  46.     int cont,k;
  47.     FILE *filePizzino;
  48.     Pizzino pizzino;
  49.     char soluzione[NCODICI];
  50.     int i,j,v[NCODICI];
  51.     filePizzino = fopen("Dati di input.txt","r");
  52.     if(filePizzino){
  53.                     if(fgetc(filePizzino)!=EOF){
  54.                                                 rewind(filePizzino);
  55.                                                 apriPizzino(filePizzino,&pizzino);
  56.                                                 for(i=0;i<pizzino.n;i++){
  57.                                                                          cont=0;
  58.                                                                          for(j=0;j<pizzino.n;j++){
  59.                                                                                                   cont=cont+isAnagramma(pizzino.codice[i].sequenza,pizzino.codice[j].sequenza);
  60.                                                                                                   }
  61.                                                                          v[i]=cont;
  62.                                                                          }
  63.                                                 for(i=0;i<pizzino.n;i++){
  64.                                                                          soluzione[i]=pizzino.codice[i].sequenza[v[i]-1];
  65.                                                                          }
  66.                                                 filePizzino=fopen("Dati di output.txt","w");
  67.                                                 fprintf(filePizzino,"%s",soluzione);
  68.                                                 fclose(filePizzino);
  69.                                                 }
  70.                     else{
  71.                          filePizzino=fopen("Dati di output.txt","w");
  72.                          fprintf(filePizzino,"File di input vuoto");
  73.                          fclose(filePizzino);
  74.                          }
  75.                     }
  76.     else{
  77.          printf("\nFile Dati di input.txt non trovato.\n");
  78.          fopen("Dati di input.txt","w");
  79.          printf("Riavviare il programma. Dati di input.txt e' stato creato\n");
  80.          }
  81.     system("PAUSE");
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement