Advertisement
Guest User

letteraCostituzione

a guest
Jun 26th, 2017
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.94 KB | None | 0 0
  1. //
  2. //  letteraCostituzione.c
  3. //  esercizi eseguiti in xcode
  4. //
  5. //  Created by Andrea Guerini on 26/06/17.
  6. //  Copyright © 2017 Andrea Guerini. All rights reserved.
  7. //
  8.  
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11.  
  12. #define NOME_FILE "costituz.txt"
  13.  
  14. int main()
  15. {
  16.     char costituzione[128];  //immagino che il testo sia una stringa di lunghezza non superiore a 4096 caratteri
  17.     int i; //contatore per ciclo
  18.     char k;  // "contatore" tipo carattere per il codice ASCII
  19.     int max;  //occorrenze massime
  20.     char massimo;  //carattere con più occorrenze
  21.     char ASCII[128];  /*basato sulle caratteristiche di c tali per cui a ciascuna lettera corrisponde un numero. La sequenza delle lettere produce numeri progressivi.*/
  22.    
  23.     FILE*fp;
  24.    
  25.     fp = fopen (NOME_FILE, "r");  //apro il file in modalità lettura
  26.    
  27.     if (fp == NULL)
  28.     {
  29.         printf("Il file %s non e' stato trovato.\n", NOME_FILE);
  30.         exit(-1);
  31.     }
  32.    
  33.     while (fscanf(fp, "%s", costituzione) == 1)
  34.     {
  35.         i=0;
  36.         while (costituzione[i]!='\0')  /*per contare i caratteri occorre un ciclo basato sulla cesura (\0) di ciascuna parola*/
  37.         {
  38.             k=costituzione[i];  //assegno il numero trovato a
  39.             ASCII[k]++;
  40.             i++;  //contatore per scorrere i caratteri delle singole parole
  41.         }
  42.     }
  43.    
  44.     max=0;
  45.    
  46.     for (i=0; i<128; i++)  //semplice ciclo lungo tutti i caratteri ASCII per trovare il maggiore per numero di occorrenze
  47.     {
  48.         if (ASCII[i]>max)
  49.         {
  50.             max=ASCII[i];  //assegno a max il valore massimo di occorrenze raggiunte per un confronto successivo
  51.             massimo=i;   //assegno a massimo il numero ascii corrispondente a un carattere
  52.            
  53.         }
  54.     }
  55.    
  56.     printf("La lettera con piu' occorrenze e': %c \n", massimo);  //stampa la lettera con più occorrenze
  57.    
  58.     close(fp);
  59.     fflush(stdin);
  60.     getchar();
  61.     exit(0);
  62.    
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement