使用函数和中点的数字猜测器

Number guesser using function and midpoint

本文关键字:数字 函数      更新时间:2023-10-16

我正在使用函数和中点为数字猜测器编写一个程序,以找出选择的数字。我在编译时遇到问题,无法找出问题所在????

我的问题描述:

playOneGame函数的返回类型应为 void。它应该 在 1 到 100 的范围内实现一个完整的猜谜游戏。

shouldPlayAgain函数应具有布尔返回类型。它 应提示用户确定用户是否要再次播放, 读入一个字符,如果该字符是"y",则返回 true,并且 否则返回 false。

此外,还应实现帮助程序函数 getUserResponseToGuessgetMidpoint。它们应该在内部调用 您的playOneGame功能。

getUserResponseToGuess .此函数应提示用户 短语"是吗?(h/l/c(:",值替换令牌 .它应该返回一个字符。字符应该是三个之一 可能的值:"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 exitingn";
            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;
}

void playOneGame;不是函数前向声明。 void playOneGame();是。这同样适用于函数定义。

此外,还应定义shouldPlayAgain()并包含<stdlib.h>,以便exit()正常工作。

getUserResponseToGuess()只有一个return,而不是返回有用的东西,并且它不会在默认分支上返回任何内容。

相关文章: