[英]C Guessing Game
我的程序生成的數字是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");
}
要生成一個介於1到100(含)之間的數字,請使用以下命令:
int y = rand() % 100 + 1;
要告訴他們還剩下多少次嘗試,您需要
printf("Number of tries: %d", 9 - loopcount);
在您的while循環結束時。
幾點建議:
y > 0
和y < 100
,在應用@MasterOfBinary的修正對100做模並加1之后,構造上確實是正確的。但是,如果要使結果嚴格小於100,則對99作模。 a < y
他們的猜測太小而不是太大。 else
子句是無用的, else if
在其上面的else if
變成一個普通else
。 loopcount = loopcount + 9;
不需要聲明, break;
之后,您立即擺脫困境。 loopcount
語句,即++loopcount;
或loopcount += 1;
。 \\n
)。 如果不給隨機數生成器作為種子, rand
將始終產生相同的數字序列。 要播種,請使用srand
函數。 播種的規范方法是從一天中的時間開始,例如:
#include <time.h>
...
srand(time(NULL));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.