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

Cerrado
MIguel - Modificado el 25 oct 2020 a las 17:45
misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 - 1 nov 2020 a las 05:37
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

misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 127
29 oct 2020 a las 01:15
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
usuario anónimo
26 oct 2020 a las 03:49
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 ????
0
misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 127
1 nov 2020 a las 05:37
Mi respuesta sería que lo estarías confundiendo con el Do-While , manu092
0