PDA

Visualizza la versione completa : [C] Calcolo lunghezza media delle parole in una frase


khjaretta
31-08-2014, 18:21
Ciao a tutti! :)
Ho un problema a fare un programma che calcoli la lunghezza media delle parole in una frase.
Io l'ho fatto in un certo modo, ma stampa il numero totale di lettere e non la media.
Qual' l'errore? :dh:



#include <stdio.h>
int main(void)
{
float avg;
int n_letters = 0, n_words = 0;
char ch;

printf("Inserisci una frase: ");

while ( (ch = getchar() ) != '\n') {
if ( ch != ' ')
n_letters++;
else if ( ch == ' ')
n_words++;
}

avg = (float)(n_letters)/(float)(n_words);

printf("Lunghezza media: %.1f", avg);

return 0;
}

Scara95
31-08-2014, 18:53
Quel programma non tiene conto dell'ultima parola. Ad esempio in questa frase:
Ciao_come_va?
2 parole
11 caratteri
11/2=5.5
Inoltre nel caso due parole siano separate da pi spazi vengono contate pi parole.

Potresti riscriverlo usando fgets e strtok (in modo da eliminare anche i segni di punteggiatura e gli spazi extra)

Alex'87
31-08-2014, 20:51
Se un esercizietto non penso possa usare la strtok.

Comunque basta aggiungere un controllo per gli spazi consecutivi (e aspettare a fare l'incremento...)

LeleFT
01-09-2014, 10:18
@khjaretta: i titoli delle discussioni sono importanti e servono a dare un'idea di massima del contenuto della discussione... le ultime due discussioni che hai aperto le hai intitolate entrambe "Esercizio di programmazione in C", che non dice nulla del tipo di problema trattato. Il titolo va costruito in questo modo:

Tra parentesi quadre il linguaggio utilizzato.
Poi una descrizione sintetica del problema trattato.


Sistemo io le tue ultime due discussioni.


Ciao. :ciauz:

Loading