Работа выполняется в VS 2015, программа компилируется без ошибок, после ввода 1-го числа вызывается фу-я "input" и множество раз сравнивается это введенное число с случайно генерируемым, без возможно ввести его 2 раз.
//функция ввода предпологаемого числа
int input(int tries, int guess, int number)
{
while (true) {
if (guess > number) {
cout << "Число слишком БОЛЬШОЕ!\n" << endl;
}
else if (guess < number) {
cout << "Число слишком МАЛЕНЬКОЕ!\n" << endl;
}
else {
break;
}
++tries;
}
return tries;
}
//со скольки попыток угадал пользователь, если вообще угадал
void test(int tries)
{
if (tries >= 20) {
cout << "Вы исчерпали количество попыток!\n";
}
else {
if (tries == 1) {
cout << "Наконец то, вы угадали за " << tries << " попытку!";
}
else if (tries == 2 || tries == 3 || tries == 4) {
cout << "Наконец то, вы угадали за " << tries << " попытки!";
}
else {
cout << "Наконец то, вы угадали за " << tries << " попыток!";
}
}
}
// продолжить угадывать или закончить
void contin(char answer)
{
while (true) {
if (answer == 'n' || answer == 'y') {
break;
}
else {
cout << "Введите ваш выбор\'y\' или \'n\'\n";
}
if (answer == 'n') {
cout << "Жаль!";
break;
}
else {
cout << "\n\n";
}
}
}
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
while (true) {
int number = rand() % 100 + 1;
int guess; //Предпологаемое число пользователя
int tries = 0; //Количество попыток
char answer; //Ответ на предложение продолжить игру
string name;
cout << "Введите имя";
cin >> name;
cout << "Введите число от 1 до 100 (" << 20 - tries << " попыток осталось): ";
cin >> guess;
cin.ignore();
input(tries, guess, number);
test(tries);
cout << "Хотите ли сыграть еще раз(д/н)? ";
cin >> answer;
cin.ignore();
contin(answer);
cout << "\nНажимет на любую клавишу чтобы завершить!";
cin.ignore();
return 0;
}
}
Значение, возвращенное input, надо передать в test
test(input(tries, guess, number));
Исправить
int input(int tries, int guess, int number)
{
while (true) {
if (guess > number) {
cout << "Число слишком БОЛЬШОЕ!\n" << endl;
}
else if (guess < number) {
cout << "Число слишком МАЛЕНЬКОЕ!\n" << endl;
}
else {
break;
}
cout<<"Введите новое число";
cin>>guess;
++tries;
}
return tries;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Дело в том, что я невнимательно смотрел, как все делается, и не переименовал libSOILa в SOIL
Первое - код для понимания, какой объект я буду инициализировать, остальные - поля классов
У меня задание написать Отсортировать числовую последовательность в порядке возрастания количества делителей её элементов, используя...