Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con while!!!

Estas en el tema de Problema con while!!! en el foro de C/C++ en Foros del Web. Hola, quisiera que me ayudaran con este nuevo problema, tengo que hacer un programa donde creo 2 numeros al azar, y esos 2 numero salen ...
  #1 (permalink)  
Antiguo 02/07/2011, 11:24
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Pregunta Problema con while!!!

Hola, quisiera que me ayudaran con este nuevo problema, tengo que hacer un programa donde creo 2 numeros al azar, y esos 2 numero salen en una pregunta, que dice cuanto es la multiplicacion de los 2, si el el resultado es correcto, me dice sale un linea en pantalla diciendo:"Muy bien, excelente", pero si no, me sale: "No.Intenta de nuevo", el problema es que si yo ingreso mal el numero de la multiplicacion, vuelva hacer de nuevo el mismo problema(eso ya esta hecho con un while) pero si introduzco el valor correcto, quiero que me genere otra pregunta, lo cual no hace porque en la ultima linea me hace un bucle infinito y no me sale, ayuda, yo quiero que me genere una nueva pregunta
Código C++:
Ver original
  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. int numero1;
  10. int numero2;
  11. int total;
  12. int producto;
  13. string respuesta;
  14.  
  15. srand(time(NULL));
  16.  
  17. numero1=(1+rand()%10);
  18. numero2=(1+rand()%10);
  19.  
  20. while(respuesta!="n" && respuesta!="N")
  21. {
  22.    while(total!=producto)
  23.    {
  24. cout<<"Cuanto es "<<numero1<<" por "<<numero2<<" ?"<<endl;
  25. cin>>total;
  26. producto=numero1*numero2;
  27.  
  28.       if(total==producto)
  29.        {
  30.          cout<<"Muy bien! Excelente!!!"<<endl;
  31.          cout<<endl;
  32.          cout<<"La multiplicacion es igual a: "<<producto<<endl;
  33.          cout<<endl;
  34.            }
  35.             else
  36.              {
  37.                     cout<<"No.Intenta de nuevo!!"<<endl;
  38.                     system("pause");
  39.                     system("cls");
  40.                     }
  41.                     }
  42.          cout<<"Desea realizar otra multiplicacion: s/n?"<<endl;
  43.          cin>>respuesta;
  44.          system("cls");
  45.          }        
  46. return 0;
  47.  
  48. }
  #2 (permalink)  
Antiguo 02/07/2011, 14:06
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema con while!!!

Cuando adivinas el numero y te pregunta si queres otra multiplicacion y pones 's' te vuelve a preguntar porque lo mismo porque la variable total y producto siguen siendo iguales. Asi que la condicion del while falla y no lo ejecuta. Y lo que sigue es preguntar de nuevo, Si tu intencion es realizar otra multiplicacion deberias poner total en 0. Y ademas el calculo del numero aleatoria dentro del while, para que se calcule de nuevo.
  #3 (permalink)  
Antiguo 02/07/2011, 14:52
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Problema con while!!!

despues de postear esto encontre la solucion que era

Código C++:
Ver original
  1. //Programa para Multiplicar usando numero aleatorios de 1 al 10
  2. //Ejercicio 3.55
  3.  
  4. #include <iostream>          
  5. #include <ctime>
  6. #include <cstdlib>
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12. int numero1;                
  13. int numero2;                
  14. int total;                  
  15. int producto;              
  16. string respuesta;          
  17.  
  18. srand(time(NULL));          
  19.  
  20. numero1=(1+rand()%10);      
  21. numero2=(1+rand()%10);      
  22.  
  23. while(respuesta!="n" && respuesta!="N")              
  24. {
  25.    producto=0;                        
  26.    total=1;                              
  27.    srand(time(NULL));                    
  28.    numero1=(1+rand()%10);                
  29.    numero2=(1+rand()%10);                
  30.    
  31.    while(total!=producto)    
  32.    {
  33.    
  34. cout<<"Cuanto es "<<numero1<<" por "<<numero2<<" ?"<<endl;          
  35. cin>>total;
  36. producto=numero1*numero2;                                        
  37.  
  38.       if(total==producto)
  39.        {
  40.          cout<<"Muy bien! Excelente!!!"<<endl;                    
  41.          cout<<endl;
  42.          cout<<"La multiplicacion es igual a: "<<producto<<endl;
  43.          cout<<endl;
  44.            }
  45.             else
  46.              {                                            
  47.                     cout<<"No.Intenta de nuevo!!"<<endl;    
  48.                     system("pause");
  49.                     system("cls");
  50.                     }
  51.                     }
  52.          cout<<"Desea realizar otra multiplicacion: s/n?"<<endl;    
  53.          cin>>respuesta;
  54.          system("cls");
  55.          }        
  56. return 0;
  57.  
  58. }

Etiquetas: muestra, multiplicacion, semilla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:27.