함수와 중간 점을 사용하여 숫자 추측을위한 프로그램을 작성하여 선택된 숫자를 찾습니다. 컴파일하는 데 문제가 있으며 문제를 파악할 수 없습니까?함수와 중간 점을 사용하는 숫자 추측 자
내 문제에 대한 설명 :
playOneGame
기능은 무효의 반환 형식이 있어야합니다. 은 1에서 100 사이의 완전한 추측 게임을 구현해야합니다.
shouldPlayAgain
함수에는 부울 반환 유형이 있어야합니다. 은 사용자가 다시 재생할 것인지를 묻는 메시지를 표시해야합니다. 문자를 읽은 다음 문자가 'y'이면 true를 반환하고 그렇지 않으면 을 반환합니다. 그렇지 않으면 false를 반환합니다.또한 도우미 함수
getUserResponseToGuess
및getMidpoint
을 구현해야합니다. 그들은playOneGame
함수 안에서 호출되어야합니다.
getUserResponseToGuess
. 이 함수는 사용자에게 구 "with it? (h/l/c) : "토큰을 대체하는 값으로 . char를 반환해야합니다. char 값은 'h', 'l'또는 'c'의 세 가지 중 하나 여야합니다. 다음과 같은 서명이 있어야합니다.char getUserResponseToGuess(int guess)
getMidpoint
. 이 함수는 두 개의 정수를 허용해야하며 은 두 정수의 중간 점을 반환해야합니다. 범위의 중간에 에 두 개의 값이있는 경우이 중 작은 숫자 인 을 일관되게 선택해야합니다.int getMidpoint(int low, int high)
내 코드 :
#include<iostream>
using namespace std;
void playOneGame;
char getUserResponseToGuess(int guess);
int getMidpoint (int low, int high);
int main() {
do
{
playOneGame();
} while (shouldPlayAgain());
return 0;
}
void playOneGame
{
int a = 100;
cout << "\nGuess a number between 1 and 100. " <<endl;
getUserResponseToGuess (a);
}
char getUserResponseToGuess(int guess)
{
while (true)
{
int guess = getMidpoint(minimum, maximum);
std::cout << "\nIs it [h]igher/[l]ower/[e]qual to " << guess << "? ";
char answer;
if (!(std::cin >> answer))
{
std::cerr << "error reading user input, program exiting\n";
exit(1);
}
if (answer == 'h')
minimum = guess + 1;
else if (answer == 'l')
maximum = guess - 1;
else if (answer == 'e')
{
std::cout << "Well, isn't that nice.\n";
return;
}
if (minimum > maximum)
{
std::cerr << "hey, you lied to me!\n";
exit(1);
}
}
}
int getMidpoint (int low, int high)
{
int mid;
mid = (low + high)/2;
return mid;
}
코드를 읽기 쉽도록 올바르게 포맷하십시오. –