Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pulse

Contabilizar vogais em string

Recommended Posts

Faça um programa que mostre as vogais que aparece numa frase juntamente com o número de aparições

#include <stdio.h>
#include <string.h>

int main ()
{
    char frase[30];
    int i, conta = 0, conte = 0, conti = 0, conto = 0, contu = 0;

    puts("Digite uma frase");
    fgets(frase, 30, stdin);

    for(i=0; i<30; i++)
    {
        switch(frase[i])
        {
            case 'a':
                conta++;
                break;
            case 'A':
                conta++;
                break;
            case 'e':
                conte++;
                break;
            case 'E':
                conte++;
                break;
            case 'i':
                conti++;
                break;
            case 'I':
                conti++;
                break;
            case 'o':
                conto++;
                break;
            case 'O':
                conto++;
                break;
            case 'u':
                contu++;
                break;
            case 'U':
                contu++;
                break;
            default:
                break;
        }
    }

    printf("A = %d vezes \n E = %d vezes \n I = %d vezes \n O = %d vezes \n U = %d vezes", conta, conte, conti, conto, contu);

    return 0;
}

O problema é que está havendo algumas contabilizações erradas, do u por exemplo, em alguns exemplos coloquei frases como: "amanha nao tem aula" e no final é exibido que há 3 u's na string.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá pra simplificar isso:

 

 

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main () {
  char frase[30];
  int i, conta = 0, conte = 0, conti = 0, conto = 0, contu = 0;

  puts("Digite uma frase");
  fgets(frase, 30, stdin);

  for(i=0; i<30; i++) {
     switch(tolower(frase[i])) {
        case 'a':
           conta++;
           break;
        case 'e':
           conte++;
           break;
        case 'i':
           conti++;
           break;
        case 'o':
           conto++;
           break;
        case 'u':
           contu++;
     }
  }

  printf("A = %d vezes \n E = %d vezes \n I = %d vezes \n O = %d vezes \n U = %d vezes", conta, conte, conti, conto, contu);

  return 0;
}

 

Teu código não tem nada de errado: http://ideone.com/yG38Fq

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.