Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 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) //condizione fondamentale è che ci sia la stringa testuale
  34. {
  35. i=0; //un contatore contchar qui conterebbe le parole e quindi gli spazi
  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 k
  39. ASCII[k]++; //incremento il valore dell'array ASCII in posizione 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