Ayuda porfaaa. Fallo muy simple que no encuentro.

Iniciado por PabloSoek, 10 Julio 2017, 17:54 PM

0 Miembros y 1 Visitante están viendo este tema.

PabloSoek

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:

Código (cpp) [Seleccionar]
#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.

MAFUS

Lo que ocurre es que de esa forma no se tratan las cadenas de caracteres.
Las cadenas van entre comillas dobles y para compararlas se deben usar funciones de librería. A menos que uses objetos string, entonces la cosa cambia.