• Jueves 28 de Marzo de 2024, 14:12

Autor Tema:  Problema en el for(no me elimina basura)  (Leído 2586 veces)

andresucko

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problema en el for(no me elimina basura)
« en: Miércoles 14 de Octubre de 2015, 05:01 »
0
Buenas noches amigos, tengo un problema con este programa, en donde tengo que hacer que el usuario ingrese un nombre y me muestre cuantas vocales, consonantes y espacios tiene, el problema aqui es que me lee mucha basura y cuando cambio lo que esta dentro del for me marca o me lee mejor dicho solo un caracter(ya sea espacio, consonante o vocal) me gustaria saber si podrian ayudarme con este programa, aqui les dejo mi codigo.

Código: [Seleccionar]
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <conio.h>
#include <windows.h>
#include <iomanip>


using namespace std;

int main (){
 char nom[30];
 int vocal=0, cons=0, esp=0;
 int i=0;

 cout<<"Ingresa tu nmbre: "<<endl;
 cin.getline(nom,30);
 for (i=0;i!='\30';i++){
 if (((nom[i]>='A')&&(nom[i]<='Z'))||((nom[i]>='a')&&(nom[i]<='z')))
 {
     if((nom[i]=='a')||(nom[i]=='e')||(nom[i]=='i')||(nom[i]=='o')||(nom[i]=='u')
        ||(nom[i]=='A')||(nom[i]=='E')||(nom[i]=='I')||(nom[i]=='O')||(nom[i]=='U'))
        {
            vocal=vocal+1;
        }
     else
        {
            cons=cons+1;
        }
}
 else
 {
     esp=esp+1;
 }
 }
 cout<<"El nombre tiene: "<<vocal<<" Vocales, "<<cons<<" Consonantes y "<<esp<<" Espacios"<<endl;

 system("pause");
 return 0;
}

chenech

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re:Problema en el for(no me elimina basura)
« Respuesta #1 en: Jueves 22 de Octubre de 2015, 00:27 »
0
Hola, creo que el problema lo tienes en el for, colocas que hasta no sea igual a 30?
yo pondría mientra sea menor que la longitud de la variable, que es con la función sizeof.
« última modificación: Jueves 22 de Octubre de 2015, 00:30 por chenech »