Buongiorno a tutti, credo di essere sulla buona strada ma non riesco a stampare la frase di fine programma: la parola più utilizzata è: .....
Non riesco a capire il motivo, qualcuno potrebbe aiutarmi?
Il testo dell' esercizio è sopra il codice
Non riesco a capire il motivo, qualcuno potrebbe aiutarmi?
Il testo dell' esercizio è sopra il codice
C:
/*
Si implementi una funzione C di prototipo:
char mostFrequentLetter(char *str, int *num_freq);
che riceva in ingresso una stringa e che restituisca il carattere che compare pi`u frequentemente.
Tale funzione dovr`a restituire anche il numero di occorrenze del carattere pi`u frequente, attraverso
il parametro di output num freq passato per riferimento. Si assuma che la stringa sia composta
solo da caratteri maiuscoli. Se vi `e pi`u di un carattere con la stessa frequenza, tra questi si ritorni
il primo in ordine alfabetico. Se la stringa ha lunghezza 0 o il puntatore str `e NULL, si restituisca
il carattere di terminazione stringa (’\0’) e frequenza num freq settata a 0.
*/
char mostFrequentLetter(char str[80], int num_freq[80]){
int i, str_dim, counter_dim = 'Z'-'A'+1 , max_freq=0;
int counter['z' - 'A' + 1] = {0};
char mf_letter;
printf("Inserisci la stringa: \n");
fgets(str, 80, stdin);
str_dim = strlen(str);
for(i = 0; i < str_dim; i++){
counter[(int)(str[i] - 'A')]++;
printf("counter = %d\n", counter[i]);
}
for(i = 0; i < counter_dim; i++){
if(counter[i] >= max_freq){
max_freq = counter[i];
printf("max freq = %d\n", max_freq);
mf_letter = (char)(i + 'A');
}
}
printf("%s", mf_letter);
num_freq[i] = max_freq;
return mf_letter;
printf("La lettera: %s e' stata ripetuta: %d", mf_letter, num_freq);
}
int main (){
char str[80];
int num_freq[8+0];
char mf_letter;
mostFrequentLetter(str, num_freq);
printf("La lettera: %s e' stata ripetuta: %d", mf_letter, num_freq);
return 0;
}