我的程序生成的数字为999999999999999999999999999999999999。我如何使该程序生成1到100的数字。我如何告诉用户他们还剩下多少次尝试?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int loopcount = 0;
int y = rand()%10;
int a;
printf("You have 8 chances to guess the right number. Enter your first number.");
while ((loopcount < 9) &&(y>0) &&(y<100))
{
printf("enter a number.");
scanf("%d", &a);
if (a == y){
printf(" you have guessed the correct number.");
loopcount = loopcount + 9;
break;
}
else if (a < y){
printf("the number is less than");
loopcount = loopcount + 1;
continue;
}
else if (a > y){
printf("the number is greater");
loopcount = loopcount + 1;
continue;
}
else{
printf("nothing.");
break;
}
}
system("pause");
}
最佳答案
几点建议:
无需检查y > 0
和y < 100
,这是真的
应用@MasterOfBinary的修复以模100为模并加1。
但是,如果要使结果严格小于100,则使模为99。
您的响应消息是向后的。如果a < y
他们的猜测也是
小,不要太大。
最后的else
子句无用,请使其上方的else if
普通else
。
不需要loopcount = loopcount + 9;
语句,break;
会使您立即退出循环。
您可以将其他loopcount
语句替换为增量
形式,++loopcount;
或loopcount += 1;
。
您的提示和响应字符串最后需要换行符(\n
)。