【发布时间】:2019-12-23 17:03:46
【问题描述】:
我想制作一个游戏,让你在电脑上轮流三圈猜出选定的数字。然而,即使你得到了正确的数字(已经使用 printf 语句测试过),它也永远不会说做得好,并且循环也会因为继续或运行两次而搞砸。
我已尝试删除中断。 我已经放入了 printf 语句来检查 randomise 和 questions 是否真的存储了正确的值并且它们确实存在。
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# include <time.h>
int questions() {
int num;
printf("Chose a number between one - ten: ");
scanf("%d",&num);
return num;
}
int randomise() {
int roll;
srand(time(NULL));
roll = rand()%10 + 1;
return roll;
}
int main() {
int chosenNum, enteredNum, i;
chosenNum = randomise();
enteredNum = questions();
for(i = 0; i < 10; i++) {
if(chosenNum != enteredNum) {
questions();
break;
}
else if(chosenNum == enteredNum) {
printf("WELL DONE !!!");
}
}
return 0;
}
零错误和零警告。结果应该是你做得很好。
【问题讨论】:
-
文字不能太短,但可以尝试在邮件末尾添加
"\n":"WELL DONE !!!\n"。 -
chosenNum = questions();和break在错误的分支... -
注意
srand()— why call it only once?。这不是您的问题,因为您只调用一次randomise()。但这是您需要尽快注意的事情。您的“做得好”消息应以换行符结尾。 -
感谢您的 cmets,我已使用您的所有反馈,并将尽快发布代码。谢谢
标签: c loops if-statement random