[ Foro de C++ ]
hola!He creado un programa que consiste en adivinar un numero que el usuario piense entre el valor minimo 0 y el maximo 1000000. Para ello, se hace la media entre estos dos y se le pregunta al programa si el numero pensado es mayor, menor o igual. Si es mayor se toma como valor minimo el valor de la media y si es menor se toma como maximo el valor de la media, y se vuelve a preguntar al programa si el valor es mayor menor o igual, asi hasta un maximo de 20 preguntas.
Este es el codigo que he creado, pero no se porque no se cambia de valor los maximos y minimos tras preguntar. Ayuda. pd: soy principiante
#include <iostream>
#include <cmath>
using namespace std;
int main()
{ string opcion;
const int max_num_respuestas=20;
int valor_minimo=0;
int valor_maximo=1000000;
int media;
for(int i=0; i<max_num_respuestas; ++i)
{ media=valor_maximo + valor_minimo;
cout<<"el valor pensado es mayor, inferior o igual que "<<media<<endl;
cin>>opcion;
if(opcion=="mayor"){
media=valor_minimo;
}
else if(opcion=="inferior")
media=valor_maximo;
else{
cout<<"tu numero es "<<media;
break;}
}
}
Quizá sea algo tan sencillo como
media=valor_maximo + valor_minimo;
que debería ser
media=(valor_maximo + valor_minimo) / 2;
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)