[ 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 (+84)

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.)