elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda!! Problema de ejecución en un bucle
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda!! Problema de ejecución en un bucle  (Leído 2,485 veces)
jbuitrago

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda!! Problema de ejecución en un bucle
« en: 21 Septiembre 2016, 06:17 am »

Hola, soy nuevo en la programación y estoy haciendo un programa sencillo, pero por alguna extraña razón no se ejecuta de buena manera.
El programa pide introducir un nombre y edad  y de acuerdo a un rango de edad establecido se imprime un valor ("piso n"); el problema consiste en que cuando hay que introducir el nombre, el programa se ejecuta sin dar chance de introducir la edad y automáticamente adopta un valor desconocido.
lo interesante es que cuando invierto el orden de la ejecución (primero la edad y luego el nombre) funciona bien.

la única idea que se me ocurre, de cual puede ser el problema, es que haya un conflicto en el tipo de las variables y el programa se vuelva loco XD .

Pdt: estoy utilizando codeblocks

Este es el codigo:


Código
  1. #include <iostream>
  2.  
  3. //PROGRAMA QUE DEVUELVE UN VALOR "PISO" SEGUN LA EDAD INGRESADA
  4.  
  5. using namespace std;
  6.  
  7. main()
  8. {
  9.    char name;
  10.    int edad;
  11.  
  12.    cout<<"Introduzca su nombre :";cin>>name;
  13.    cout<<"\nDigite su edad :";cin>>edad;
  14.  
  15.  
  16.    cout<<"\n";
  17.  
  18.        if(edad>=0 && edad<=9)cout<<"PISO 0";
  19.            else if(edad>=10 && edad<=19)cout<<"PISO 1";
  20.                else if(edad>=20 && edad<=29)cout<<"PISO 2";
  21.                    else if(edad>=30 && edad<=39)cout<<"PISO 3";
  22.                        else if(edad>=40 && edad<=49)cout<<"PISO 4";
  23.                            else if(edad>=50 && edad<=59)cout<<"PISO 5";
  24.                                else if(edad>=60 && edad<=69)cout<<"PISO 6";
  25.                                    else if(edad>=70 && edad<=79)cout<<"PISO 7";
  26.        else
  27.        cout<<"\nERROR"<<endl;
  28.  
  29.        cout<<endl;
  30. }
  31.  


Mod: Los códigos deben ir en etiquetas GeSHi


« Última modificación: 21 Septiembre 2016, 06:45 am por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda!! Problema de ejecución en un bucle
« Respuesta #1 en: 21 Septiembre 2016, 06:48 am »

primero que nada main es de tipo int y retorna 0 por regla general... es raro que el compilador te permita compilar eso...

segundo, lo que pasa es que el enter lo está tomando el otro cin... debes usar cin.ignore, lee esto

http://foro.elhacker.net/programacion_cc/funcion_cinignore-t290246.0.html


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
fflush

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda!! Problema de ejecución en un bucle
« Respuesta #2 en: 21 Septiembre 2016, 11:07 am »

Desconozco como funciona C++ pero  no tendrias que guardar el nombre en un string? en vez de un caracter?
En línea

Nucleorion

Desconectado Desconectado

Mensajes: 72


Ver Perfil
Re: Ayuda!! Problema de ejecución en un bucle
« Respuesta #3 en: 21 Septiembre 2016, 13:38 pm »

Tal como te dice hotcake has de usar una variable tipo string para el nombre.

El codigo que te pongo mas abajo funciona compilandolo en notepad++ con MinGW y usando estos paramatros:
Citar
//Guardar el archivo actual
NPP_SAVE

//Borrar el exe anterior
cmd /c del /Q "$(CURRENT_DIRECTORY)\$(NAME_PART).exe"

//Compila (aqui debes indicar la ruta en donde se encuentra tú compilador g++)
C:\MinGW\bin\g++.exe "$(FULL_CURRENT_PATH)" -o $(NAME_PART)

//Ejecutamos el programa.
$(CURRENT_DIRECTORY)\$(NAME_PART).exe

char solo guarda un caracter que es un numero de 0 a 255. char se puede usar para guardar cadenas si lo ponemos cono array char[20]

Lo que hacemos es declarar name como string, que es un tipo especial de dato para guardar cadenas de caracteres:
He añadido ademas la impresion de la variable name para probar su funcionamiento.
Código
  1. #include <iostream>
  2.  
  3. //PROGRAMA QUE DEVUELVE UN VALOR "PISO" SEGUN LA EDAD INGRESADA
  4.  
  5. using namespace std;
  6.  
  7. main()
  8. {
  9.        string name;
  10.        int edad;
  11.  
  12.        cout<<"Introduzca su nombre :";
  13. cin>>name;
  14.        cout<<"Digite su edad :";
  15. cin>>edad;
  16.  
  17.        cout<<"\n"<<name<<" VA AL ";
  18.  
  19. if(edad>=0 && edad<=9)cout<<"PISO 0";
  20. else if(edad>=10 && edad<=19)cout<<"PISO 1";
  21. else if(edad>=20 && edad<=29)cout<<"PISO 2";
  22. else if(edad>=30 && edad<=39)cout<<"PISO 3";
  23. else if(edad>=40 && edad<=49)cout<<"PISO 4";
  24. else if(edad>=50 && edad<=59)cout<<"PISO 5";
  25. else if(edad>=60 && edad<=69)cout<<"PISO 6";
  26. else if(edad>=70 && edad<=79)cout<<"PISO 7";
  27. else
  28. cout<<"\nERROR"<<endl;
  29.  
  30. cout<<endl;
  31. }

El uso de cin.ignore lo desconozco ya que he solido usar simpre printf y scanf

Declarar main como int y devolver un valor con return, parece que depende del compilador.

Y tambien te informo ya de paso de que no estas usando ningun bucle en ese codigo.
« Última modificación: 21 Septiembre 2016, 13:44 pm por Nucleorion » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con bucle While en vb 6.0
Programación Visual Basic
merlin 2 2,719 Último mensaje 14 Abril 2007, 02:39 am
por Sancho.Mazorka
Duda (Parar bucle con dato boolean) [bucle while]
Java
Dem0ny 5 18,600 Último mensaje 17 Diciembre 2008, 17:43 pm
por Dem0ny
Romper ejecucion de un bucle
Programación C/C++
soyloqbuskas 5 2,825 Último mensaje 31 Octubre 2012, 01:55 am
por soyloqbuskas
[AYUDA] Problema con Script de instalación y ejecución...!!!
Scripting
user_foro 0 1,585 Último mensaje 27 Julio 2015, 18:30 pm
por user_foro
Problema con ejecución de .bat ayuda
Scripting
MC.cover 1 1,952 Último mensaje 12 Enero 2016, 07:45 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines