[ Foro de C++ ]

No encuentro el error en mi programa. ayuda.

28-Oct-2017 17:26
Invitado (Sara )
1 Respuestas

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;}
 
 
}
}
 


 


08-Nov-2017 19:30
Nacho Cabanes (+32)

Quizá sea algo tan sencillo como

media=valor_maximo + valor_minimo;

que debería ser

media=(valor_maximo + valor_minimo) / 2;






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...