Raga..allora..sono quasi riuscita a finire il programma..mi funziona correttamente ma mi dà 5 warning..mi dite se devo correggerli o va bene così??e ni aiutate a ultimarlo??come faccio a visualizzare l’algoritmo, in ordine alfabetico, di tutte le parole che compaiono nel testo e che iniziano con le prime 5 consonanti più frequenti??aiuto aiuto..
#include <stdio.h>
#include <string.h>
void ricerca_cons(char testo[], char cons[], int m, int contcons[]);
int pangramma (int contcons[], int n);
void ordina_cons (int contcons[], char cons[], int m);
void main ()
{
char testo[5][80]; //Array per l'inserimento del testo.
char cons[] = {'b','c','d','f','g','h','l','m','n','p','q','r','s','t','v','z'}; //Array delle consonanti.
int contcons[16]; //Array per il conteggio delle consonanti.
int i,pan;
puts("Inserisci testo da analizzare:");
gets(testo);
for (i=0; i<16; i++) //Azzero l'array per il conteggio delle consonanti.
{
contcons[i] = 0;
}
ricerca_cons(testo, cons, 16, contcons); //Chiamo la funzione.
for (i=0; i<16; i++)
{
printf("La lettera %c e' presente %d volte\n", cons[i], contcons[i]); //Stampo il risultato.
}
ordina_cons (contcons, cons, 16); //Chiamo la funzione.
printf("\nConsonanti in ordine crescente:\n");
for (i=0; i<16; i++)
{
printf("%c = %d\n", cons[i],contcons[i]); //Stampo il risultato.
}
pan = pangramma (contcons, 16); //Assegno alla variabile 'pan' la funzione.
if (pan==1)
printf("\nIl testo non e' un pangramma di consonanti.\n");
else if (pan!=1)
printf("\nIl testo e' un pangramma di consonanti.\n");
}
void ricerca_cons(char testo[], char cons[], int m, int contcons[]) //Funzione per il conteggio delle consonanti.
{
int n, i, j;
n = strlen(testo); //Assegno alla veriabile 'n' la lunghezza del mio testo.
for (i=0; i<n; i++) //Questo ciclo for mi scorre lettera per lettera tutto il testo.
{
for (j=0; j<m; j++) //Questo ciclo for mi scorre lettera per lettera tutte le consonanti.
{
if (cons[j] == testo[i]) //Se la j-sima lettera dell'array 'cons' è uguale alla i-sima lettera dell'array 'testo'..
{
contcons[j]++; //..incremento l'array 'contcons' di 1 alla j-sima posizione.
}
}
}
}
int pangramma (int contcons[], int n) //Funzione per verificare se il testo è un pangramma di consonanti.
{
int i;
for (i=0; i<n; i++) //Questo ciclo for mi scorre l'array 'contcons'.
{
if (contcons[i]==0) //Se la i-sima posizione dell'array è uguale a 0..
return 1; //..la funzione restituisce 1 e arresta il funzionamento.
}
}
void ordina_cons (int contcons[], char cons[], int m) //Funzione per ordinamento delle consonanti in ordine crescente.
{
int i,j;
int el_da_ins;
char el_da_ins1;
for(i=1;i<m;i++)
{
el_da_ins=contcons[i]; //Assegno alla variabile 'el_da_ins' l'i-simo valore dell'array 'contcons'.
el_da_ins1=cons[i]; ////Assegno alla variabile 'el_da_ins1' l'i-simo valore dell'array 'cons'.
j=i-1;
while(j>=0 && el_da_ins<contcons[j])
{
contcons[j+1]=contcons[j]; //Assegno il valore della j-sima posizione alla j-sima posizione + 1.
cons[j+1]=cons[j]; //Applico la stessa operazione all'array 'cons'.
j--;
}
contcons[j+1]=el_da_ins;
cons[j+1]=el_da_ins1;
}
}