Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/10/2014, 10:34
icm9
 
Fecha de Ingreso: septiembre-2014
Mensajes: 66
Antigüedad: 10 años, 4 meses
Puntos: 1
problema con bucle for

tengo que ingresar una cadena de caracteres y devolver que vocales y en que cantidad hay.

hice esto_
Código C++:
Ver original
  1. #include <iostream>
  2. #include <stdio.h>
  3. using namespace std;
  4. int main(){
  5.     int a,e,i,o,u;
  6.     string cadena;
  7.     cin >> cadena;
  8.     for(int x;x<=cadena.length();x++){
  9.         if(cadena[x]=='a'){
  10.             a++;
  11.         }
  12.         else if(cadena[x]=='e'){
  13.             e++;
  14.         }
  15.         else if(cadena[x]=='i'){
  16.             i++;
  17.         }
  18.         else if(cadena[x]=='o'){
  19.             o++;
  20.         }
  21.         else if(cadena[x]=='u'){
  22.             u++;
  23.         }
  24.     }
  25.     cout << a << endl;
  26.     cout << e << endl;
  27.     cout << i << endl;
  28.     cout << o << endl;
  29.     cout << u << endl;
  30.     return 0;
  31. }

ponga la cadena que ponga lo que sale en la consola es:

Código:
0
0
0
2272144
0
pero si le saco esto:
Código C++:
Ver original
  1. else if(cadena[x]=='i'){
  2.             i++;
  3.         }
  4.         else if(cadena[x]=='o'){
  5.             o++;
  6.         }
  7.         else if(cadena[x]=='u'){
  8.             u++;
  9.         }

ya si me reconoce por lo menos la A y E, pero cuando tiene q mostrar el valor en pantalla de I , U
muestra esto:
i = 2272144
u = 2280688

no entiendo q pasa