如何跟踪用户输入的输入量? C程序

How to track amount of inputs that have been inputted by a user? C Program

编辑:对于给您带来的不便,我深表歉意,但我不得不拿出我用来提交这个问题的原始代码。稍后我会重新上传我的旧代码和新代码!但是仍然存在的答案对于理解如何跟踪用户使用 do ... while 循环输入的输入数量非常有帮助。

对于这个作业,我们应该创建一个随机猜谜游戏,用户输入一个介于 1 和 100 之间的数字,并具有 3 个函数(int getRandomNumber(void)、int check4Win(int,int) 和 void printResults(int )). getRandomNumber 只是用来创建随机数,check4Win 只是告诉用户他们的猜测是否太高、太低或正确,而对于 printResults,我们应该根据用户输入的猜测次数对用户进行排名。我的问题是 printResults 以及主要用于实际跟踪用户输入的猜测次数的内容。我能够使整个代码正常工作,但我的主要问题是能够跟踪输入的数量,因为我现在所拥有的是打印出第一个输入而不是输入的数量。我将包含我的全部代码,但主要问题是 printResults。其余的看起来都不错,但如果您认为其他地方有问题,请告诉我!我知道我在 main 的 for 语句中使用了一个 switch 语句,我大约 99.9% 确定那是错误的我只是想不出还能做什么。此外,这里的格式有点偏离,但这只是为了让代码可以在我的编译器上保持良好的格式!我也很陌生,所以我会接受所有批评。 谢谢!

这里是一个非常简单的例子,说明如何计算“猜测”直到成功。您可以根据需要进行扩展,无论是将内容移动到函数中,添加“最大猜测”逻辑,使用适当的输入处理(如果您输入非整数,这将中断,例如 hello)。

int randNum = getRandomNumber();
int guessNum = 0;
int guessCount = 0;

do {
    printf("Guess #%d: ", guessCount + 1);
    scanf("%d", &guessNum);

    // validate
    if (guessNum < 1 || guessNum > 100)
    {
        printf("Invalid guess\n");
        continue;
    }
    ++guessCount;

    // check
    if (guessNum < randNum)
        printf("Too low\n");
    else if (guessNum > randNum)
        printf("Too high\n");

} while(guessNum != randNum);

printf("Total guesses: %d\n", guessCount);

我的建议是您在一个 地方管理输入。我无法忍受您在 main 中进行输入的方式,但是“check4win”函数也尝试输入值。一个函数应该做它的名字所暗示的事情。该函数“检查”某些东西,因此人们会期望它 returns 某种指示“检查”结果的值。这就是它应该做的。由于它被称为“check4Win”,我希望它 returns 如果猜测“获胜”则为真,否则为假。