Dev - C++ - Ayuda, no me aparece un dato en este programa!

   
Vista:

Ayuda, no me aparece un dato en este programa!

Publicado por Sekon (1 intervención) el 13/11/2017 12:05:52
Hola, estaba haciendo un programa de cara o cruz, donde puedes apostar pero al compilar y comenzar a introducir lo que pide en pantalla, no me sale la cantidad que he apostado.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <iostream>
#include <cstdlib>
using namespace std;
 
int cuantoApostar(int saldo){
 
	int cantidadApostado;
	cout << "Tienes " << saldo << " monedas" << endl;
	do{
		cout << "¿cuanto quieres apostar? ";
		cin >> cantidadApostado;
		if(cantidadApostado > saldo){
			cout << "No puedes apostar " << cantidadApostado << ", solo tienes " << saldo << endl;
		}
	}while(cantidadApostado > saldo);
}
 
int cuantoApostar2(int saldo){
	int cantidadApostado;
	cout << "Tienes " << saldo << "monedas" << endl;
	cout << "¿cuanto quieres apostar? ";
	cin >> cantidadApostado;
	while(cantidadApostado > saldo){
		cout << "No puedes apostar " << cantidadApostado << ", solo tienes " << saldo << endl;
		cout << "¿cuanto quieres apostar? ";
		cin >> cantidadApostado;
	}
}
/*
	¿cara o cruz? (c/x): r
	¿cara o cruz? (c/x): c
	Apuesta realizada. Has apostado 10 monedas a cara. >> Debería salir eso, pero no , sale todo el rato 0
*/
char caraOcruz(int cantidadApostada){
	char mander;
 
	do{
		cout << "¿Cara o cruz? (c/x): ";
		cin >> mander;
		if(mander != 'c' && mander != 'x'){
			cout << "Debes escribir c para cara y x para cruz" << endl;
		}
	}while(mander != 'c' && mander != 'x');
	cout << "Apuesta realizada. Has apostado " << cantidadApostada << " monedas a ";
	if(mander == 'c'){
		cout << "cara" << endl;
	}
	else{
		cout << "cruz" << endl;
	}
	return mander;
}
 
// el modulo devuelve 0 o 1
char lanzarMoneda(){
	int valor;
	char resultado;
 
	valor = rand() % 2;
	if(valor == 0){
		cout << "Ha salido cara" << endl;
		resultado = 'c';
	}
	else{
		cout << "Ha salido cruz" << endl;
		resultado = 'x';
	}
	return resultado;
}
 
// devuelve si ha ganado o ha perdido.
bool  comprobarApuesta(char eleccion, char salido, int &saldo, int cantidadApostada){
	bool gana;
 
	if(eleccion == salido){
		cout << "Has ganado" << endl;
		saldo = saldo + cantidadApostada*2;
		gana = true;
	}
	else{
		cout << "Has perdido" << endl;
		saldo = saldo - cantidadApostada;
		gana = false;
	}
	return gana;
}
 
int main(){
	int saldo = 100, capostada, ganadas = 0;
	bool gana;
	char seleccion, salido, respuesta;
 
 
	do{
		cout << "¿quieres jugar? (s/n) ";
		cin >> respuesta;
	}while(respuesta != 's' && respuesta != 'n');
	while(respuesta == 's' && saldo > 0){
		capostada = cuantoApostar(saldo);
		seleccion = caraOcruz(capostada);
		salido = lanzarMoneda();
		gana = comprobarApuesta(seleccion, salido, saldo, capostada);
		if(gana == true){
			ganadas++;
		}
		if(saldo > 0){
			do{
				cout << "¿quieres jugar? (s/n) ";
				cin >> respuesta;
			}while(respuesta != 's' && respuesta != 'n');
		}
	}
	cout << "Has ganado " << ganadas << " veces" << endl;
}
Si alguien puede decirme donde está el error se lo agradecería!!
Un saludo.
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