【发布时间】:2020-10-13 12:27:11
【问题描述】:
我是 C 编程的初学者,如果我能获得一些关于如何设置程序重新启动的提示,我将不胜感激?我目前正在构建一个猜谜游戏,用户有 10 次尝试猜测随机提供的密码。我希望程序能够从一开始就为用户提供新一轮游戏(尝试编号 1 猜数字:),即重新运行程序。
这是程序:
#include#include #defineguessLimit 10 主函数() { int secret_number; 整数猜测; intguessCount = 0; int outofGuesses = 0; 诠释我; setbuf(标准输出,NULL); srand(时间(0)); secret_number = rand() % 100; printf("\n---猜猜密码---\n"); for(i=1;i 秘密号码){ printf("对不起,数字太大了。\n"); } 如果(我==10){ printf("尝试失败"); } 如果(猜测>99 || 猜测
【问题讨论】:
-
您想了解什么是“循环”。它们是您在程序中重复内容的方式:learn-c.org/en/For_loops
-
他们已经有一个
for循环——所以大概他们了解这些是如何工作的。我建议使用while循环。 -
将整个游戏的代码放在另一个函数中,并从
main()循环调用。除了应该只调用一次的srand(time(0));。 -
附带说明 - 如果您提供“更高/更低”的反馈,则给用户 10 次猜测 1-100 范围内的数字的机会过于慷慨。如果我的计算是正确的,那么二进制搜索最多会在
log2(100)=6.64...次尝试中找到答案。换句话说,如果你知道自己在做什么,你应该能够在不超过 7 次尝试中找到答案。二进制搜索当然是通过猜测边界之间的数字然后根据您的反馈调整边界来工作的。
标签: c