Dev - C++ - Duda muy rápida en juego de adivinar numeros.

 
Vista:

Duda muy rápida en juego de adivinar numeros.

Publicado por Pablo (1 intervención) el 09/07/2017 20:32:43
Hola buenas,
Soy nuevo en esto de la programación, e intentando un problema típico de adiviniar numeros me he atascado.
He probado de todo lo que se me ha ocurrido pero nada, debe ser un fallo muy tonto pero no lo encuentro.
Muchas gracias de antemano y espero que podais ayudarme.
Enunciado del problema:
Escribir un programa para que el ordenador adivine un número entre 1 y 100 que hayáis pensado, al final presentará las estadísticas del número de veces que ha tardado en adivinar el número.

Mi código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<stdlib.h>
#include<time.h>
#include<iostream>
#include<string>
/**variable = limite_inferior + rand() % (limite_superior +1 - limite_inferior) ;**/  /*Función genérica para que te saque numeros aleatorios dentro de un rango*/
using namespace std;
 
int main(){
	int num,fallos=0;
	char respuesta[2];
 
	srand(time(NULL)); /*esto es como avisar al ordenador de que vas a utilizar la funcion de números aleatorios*/
 
 
    do{
 
    num=1+rand()%(101-1); /*funcion para que te saque numeros entre 1 y 100*/
    cout<<"El numero que has pensado es este?-->"<<num<<endl;
    cin.getline(respuesta, 2,'\n');
    fallos++;
 
    }while(respuesta[2]=='no');
 
    if(respuesta[2]=='si'){
    	cout<<"Gane!"<<endl;
    	cout<<"He fallado "<<fallos<<" veces."<<endl;
    }
			return 0;
}


El problema esta en que cuando le das una respuesta le das a enter y no hace absolutamente nada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 28
Ha disminuido su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Duda muy rápida en juego de adivinar numeros.

Publicado por JESUS DAVID ARIZA ROYETH (8 intervenciones) el 10/07/2017 00:19:07
lo edité solo un poco para que te funcionara

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdlib.h>
#include<time.h>
#include<iostream>
#include<string>
/**variable = limite_inferior + rand() % (limite_superior +1 - limite_inferior) ;**/ /*Función genérica para que te saque numeros aleatorios dentro de un rango*/
using namespace std;
int main(){
int num,fallos=0;
string respuesta="no";
srand(time(NULL)); /*esto es como avisar al ordenador de que vas a utilizar la funcion de números aleatorios*/
do{
num=1+rand()%(101-1); /*funcion para que te saque numeros entre 1 y 100*/
cout<<"El numero que has pensado es este?-->"<<num<<endl;
cin>>respuesta;
fallos++;
}while(respuesta=="no");
if (respuesta=="si"){
cout<<"Gane!"<<endl;
cout<<"He fallado "<<fallos-1<<" veces."<<endl;
}
return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 505
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Duda muy rápida en juego de adivinar numeros.

Publicado por Thanatos (184 intervenciones) el 10/07/2017 01:25:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <string>   // string, getline()
#include <cstdlib>  // srand(), rand()
#include <ctime>    // time()
 
using namespace std;
 
int main() {
    string respuesta;
    int fallos = 0;
 
    srand((unsigned)time(NULL));
 
    while (true) {
        int num = 1 + rand() % 100;
        cout << "El numero que has pensado es este? (si/no) --> " << num << '\n';
        (void)getline(cin, respuesta);
 
        if (respuesta == "si") {
            cout << "\nGane!\nHe fallado " << fallos << " veces.\n";
            break;
        } else {
            cout << '\n';
            ++fallos;
        }
    }
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar