Programma che conta vocali

di il
8 risposte

Programma che conta vocali

Salve,
non riesco a capire perchè nella condizione del while bisogna inserire "(c diverso da '\n') che sarebbe da capo"?

/* Programma che legge da standard input una sequenza di caratteri
terminata da un punto, determina il numero di vocali minuscole
presenti nella sequenza e scrive il numero calcolato in standard
output */

#include <stdio.h>
int main ()
{
char c;
int num_vocali = 0;

printf("\nInserisci una sequenza di caratteri terminata da .\n");

do{ //esegue lo statement
scanf("%c",&c); //Il carattere inserito viene assegnato a c
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') // Se c è uguale ad una vocale
++ num_vocali; // Incrementa num_vocali di 1 e restituisce il valore modificato

}

while(c!= '\n');
printf("La sequenza di caratteri inserita contiene %d vocali minuscole\n", num_vocali); /* Restituisce in output
il numero delle vocali
minuscole inserite */
return 0;
}

8 Risposte

  • Re: Programma che conta vocali

    E' evidente ... perché così, quando premi invio, il ciclo termina e hai il risultato.
  • Re: Programma che conta vocali

    Diciamo come se l'espressione del while finale risultasse vuota? Nel senso è sempre falsa?
  • Re: Programma che conta vocali

    Eh?
  • Re: Programma che conta vocali

    Non ho capito bene la tua risposta,
    riesci ad essere più preciso? Sono alle prime armi nella programmazione.
  • Re: Programma che conta vocali

    L'utente inserisce una stringa, ovvero una serie di caratteri, e alla fine preme invio: pertanto, il buffer di input conterrà una cosa del genere: input\n', dove '\n' è, per l'appunto, il carattere di a capo.
    Con la condizione while(c != '\n'), leggi un carattere alla volta: i, n, ..., fino ad arrivare al carattere '\n', che rappresenta la fine dell'input.
  • Re: Programma che conta vocali

    davide9797 ha scritto:


    Non ho capito bene la tua risposta,
    riesci ad essere più preciso? Sono alle prime armi nella programmazione.
    Più preciso di così ?

    "quando premi invio"

    "il ciclo termina"

    "hai il risultato"
  • Re: Programma che conta vocali

    Ok ora si!
    Grazie ragazzi!

    P.S. (Per lo stesso motivo) Sto facendo un altro programma che mi chiede "Se la sequenza di numeri interi inseriti è vuota, stampa il messaggio"
    Devo fare cosi?
    if (x == "\n")
    cout <<"Devi inserire una sequenza di numeri interi e non una sequenza vuota" << endl;
  • Re: Programma che conta vocali

    Per un altro problema un altro thread ...

    Però devi chiarire, se usi una stringa in input o un valore numerico ... sequenza vuota" non vuol dire molto ...
Devi accedere o registrarti per scrivere nel forum
8 risposte