¿Alguien sabe en que parte me equivoque? (Ejercicio de C++)

Denunciar
-
Message postés
384
Date d'inscription
miércoles, 10 de enero de 2018
Estatus
Miembro
Última intervención
lunes, 23 de noviembre de 2020
-
Se supone que debía hacer un programa que cuente la cantidad de vocales que hay en una frase.
Ejemplo:
"Hola soy Pedro"
Vocal a/A = 1 Vocal e/E = 1 Vocal i/I = 0 Vocal o/O = 3 Vocal u/U = 0
Pero el programa que hice no funciona y aunque me pase horas buscando el error no lo encuentro.

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;

int main(){
int x=0;
while(x<=0){
cout<<"Digite el numero de caracteres: ";
cin>>x;
if(x<=0){
cout<<"Numero no valido!"<<endl;
}
}
char v[x];
fflush(stdin);
cin.getline(v,5,'\n');
strlwr(v);
int a[5];
for(int i=0;i<x;i++){
switch(v[i]){
case 'a': a[0]++;break;
case 'e': a[1]++;break;
case 'i': a[2]++;break;
case 'o': a[3]++;break;
case 'u': a[4]++;break;
}
}
char l[]="aeiou";
for(int i=0;i<5;i++){
cout<<"El numero de "<<l[i];
strupr(l);
cout<<"/"<<l[i];
strlwr(l);
cout<<" es de: "<<a[i]<<endl;
}
getch();
return 0;
}

2 respuestas

Message postés
384
Date d'inscription
miércoles, 10 de enero de 2018
Estatus
Miembro
Última intervención
lunes, 23 de noviembre de 2020
65
tu codigo ligeramente modificado

#include<iostream>
#include<conio.h>
#include<cstring>
using namespace std;

int main(){
int x=0;
while(x<=0){
cout<<"Digite el numero de caracteres: ";
cin>>x;
if(x<=0){
cout<<"Numero no valido!"<<endl;
}
}
char v[x];
fflush(stdin);
cin.ignore();
cin.getline(v,x,'\n');
strlwr(v);
int a[5]={0,0,0,0,0};
for(int i=0;i<x;i++){
switch(v[i]){
case 'a': a[0]++;break;
case 'e': a[1]++;break;
case 'i': a[2]++;break;
case 'o': a[3]++;break;
case 'u': a[4]++;break;
}
}
char l[]="aeiou";
for(int i=0;i<5;i++){
cout<<"El numero de "<<l[i];
strupr(l);
cout<<"/"<<l[i];
strlwr(l);
cout<<" es de: "<<a[i]<<endl;
}
getch();
return 0;
}

1
Gracias

¡Estamos felices de haberte ayudado! ¿Te hemos sido de ayuda? ¡Déjanos un comentario! Evalúa a CCM

CCM 26129 usuarios nos han dicho gracias este mes

Message postés
2
Date d'inscription
domingo, 25 de octubre de 2020
Estatus
Miembro
Última intervención
lunes, 26 de octubre de 2020

hola
no soy experto pero quiero aportar con mi punto de vista
int x=0; esta parte no seria mejor que lo declares como int x; ?...asi solamente
para que el while() funcione despues de que te pida el numero de caracteres y este sea agregado a la variable int x.
asi cuando se cumpla que while(x>0) {se hace el proceso de conteo de vocales}
if(x<=0){ te dira numero no valido}
bueno es mi aporte ????
Message postés
384
Date d'inscription
miércoles, 10 de enero de 2018
Estatus
Miembro
Última intervención
lunes, 23 de noviembre de 2020
65
Mi respuesta sería que lo estarías confundiendo con el Do-While , manu092

¡Suscríbete a nuestra Newsletter!

Recibe nuestros mejores artículos

¡Suscríbete a nuestra Newsletter!