Pulse 0 Denunciar post Postado Agosto 12, 2015 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
_Isis_ 202 Denunciar post Postado Agosto 12, 2015 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