@Sulf1t

Почему консоль всегда выводит, что я програл?

//3.3 Чёт/нечёт до 3-х побед
#include <iostream>
#include <cstdlib> 
#include <ctime>
using namespace std;</b>

int main()
{
	int us = 0, cs = 0; 
	char u, c; 

	srand(time(0));

	while (cs < 3 && us < 3) {
		cin >> u; 
		c = rand() % 2;

		// u == c ? us++ : cs++;
		if (u == c)			                   
			us++;
		else
			cs++;

		cout << us << " : " << cs << endl;
	}

	// cout << (us == 3 ? "You win" : "You lose") << endl;
	if (us == 3)
		cout << "You win" << endl;
	else
		cout << "You lose" << endl;
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 1
@rPman
c = rand() % 2;у тебя тут ошибка, c у тебя равно символу с кодом либо 0 либо 1,
if (u == c)
а сравниваешь с символом '0' либо '1', у них код 48 и 49 соответственно

поэтому добавляй к c еще код символа '0' (он в ascii кодировке перед '1')
c = rand() % 2+'0';
p.s. из-за исторических наслоений, символ не считается несовместимым типом с числом, иначе бы ты увидел эту ошибку в сообщениях компилятора
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы