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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


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

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Ayuda!!! Ejercicio bucles c++
« en: 17 Octubre 2015, 00:15 am »

Buenas,Tengo que realizar este ejercicio.Lo he hecho con un if,Pero en el ejercicio necesito adivinar el numero;tantas veces ,hasta adivinar dicho numero.

Creo que debería usar un bucle do while¿Qué os parece?

Este es el codigo:

//Construir un programa que simule el siguiente juego entre los jugadores A (advino) y P (pensador):
//P piensa un número comprendido entre 1 y N ,
//y A trata de adivinarlo, mediante tanteos sucesivos, hasta dar con él. Por cada tanteo de A, P
//da una respuesta orientativa de entre las siguientes:
//Fallaste. El número pensado es menor que el tuyo.
//Fallaste. Mi número es mayor.
//Acertaste al fin.
//Mejoras:
//Debe acertar en el número de jugadas que se introduzca por teclado.
//Se debe ejecutar tantas veces como quiera el usuario.
#include <iostream>
using namespace std;

int main() {
   int numeromaximo,numero,numeroaadivinar;
   cout<<"Entre 1 y que, quieres el numero?"<<endl;
   cin>>numeromaximo;
   cout<<"Introduce el numero que el jugador P(pensador)debe adivinar"<<endl;
   cin>>numeroaadivinar;
   cout << "Jugador P(pensador),piensa y di un numero ENTRE 1 Y"<<" "<<numeromaximo<<" para que jugador A (adivino)  lo adivine:" << endl;
   cin>>numero;
   if(numero>=1 || numero<=numeromaximo){
      cout<<"Correcto.Has dicho un numero entre 1 y "<<" "<<numeromaximo<<endl;
      if(numero==numeroaadivinar){
         cout<<"Has adivinado el numero.Es el numero:"<<" "<<numeroaadivinar<<endl;

      }
      else{
         cout<<"pero has introducido un numero fallido"<<endl;
      }
   }
   return 0;
}


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda!!! Ejercicio bucles c++
« Respuesta #1 en: 17 Octubre 2015, 13:27 pm »

Do-While es la mejor elección xD

Pero, va va, colócalo.


En línea

afrocardo

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Ayuda!!! Ejercicio bucles c++
« Respuesta #2 en: 18 Octubre 2015, 18:46 pm »

Lo he hecho con while porque la profesora me dijo que había que hacerlo con while,y luego me dijo que el numero que debo adivinar debe generarse aleatoriamente en pantalla y tiene que ser un numero aleatorio de 1 hasta N(por ejemplo de 1 hasta 10).Mi problema es que cuando porngo el numero adivinado, no me muestra el mensaje de correcto, sino que dice que meta otro numero.

código probado en el software Eclipse Indigo C++

código:

//Construir un programa que simule el siguiente juego entre los jugadores A (advino) y P (pensador):
//P piensa un número comprendido entre 1 y N ,
//y A trata de adivinarlo, mediante tanteos sucesivos, hasta dar con él. Por cada tanteo de A, P
//da una respuesta orientativa de entre las siguientes:
//Fallaste. El número pensado es menor que el tuyo.
//Fallaste. Mi número es mayor.
//Acertaste al fin.
//Mejoras:
//Debe acertar en el número de jugadas que se introduzca por teclado.
//Se debe ejecutar tantas veces como quiera el usuario.
#include <iostream>
using namespace std;
#define NUMMAX 11
#define NUMMIN 1

int main() {
   int numero,numeroaadivinar,numeromaximo,numeroaleatorio;
   srand(time(NULL));
   numeroaleatorio=rand();
   cout<<"El numero aleatorio es:"<<(numeroaleatorio=1+rand()%(NUMMAX-1))<<endl;

   while((rand()%NUMMAX)!=numero){
      cout<<"Introduce un numero entre 1 y 10"<<endl;
            cin>>numero;
            if((numeroaleatorio<numero){
                     cout<<"Fallaste.El numero pensado es menor que el tuyo"<<endl;
                  }
            if((numeroaleatorio>numero){
               cout<<"Fallaste.Mi numero es mayor que el tuyo"<<endl;
            }


   }

   cout<<"Correcto.Has adivinado el numero"<<endl;

   return 0;
}
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda!!! Ejercicio bucles c++
« Respuesta #3 en: 18 Octubre 2015, 19:42 pm »

Estás poniendo
Código
  1. (rand()%NUMMAX)
En vez de numeroAleatorio. Cada vez que pones eso, se genera un numero nuevo.

Y a todo esto, al hacer while y no do-while, la primera comprobación del while comprueba con "numero", al que no le has dado un valor por defecto. Pon numero=-1 (o cualquier otro número posible fuera del rango) para evitar fallos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con bucles
Programación C/C++
NLkurosaki 2 2,487 Último mensaje 13 Diciembre 2010, 16:55 pm
por NLkurosaki
Ayuda con bucles VB 2010 « 1 2 »
.NET (C#, VB.NET, ASP)
juanlulete 17 9,097 Último mensaje 22 Julio 2012, 11:32 am
por juanlulete
Ayuda con ejercicio de bucles.
Programación C/C++
eveelynn24 2 1,938 Último mensaje 8 Noviembre 2014, 18:55 pm
por plataplomo2948
ejercicio de bucles, acumuladores, banderas...
Java
riomundo 2 1,992 Último mensaje 23 Octubre 2015, 00:25 am
por Lind L. Tailor
Problema con bucles (Ayuda)
Programación C/C++
orakelove 1 1,547 Último mensaje 16 Octubre 2018, 00:38 am
por Beginner Web
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines