簡體   English   中英

C猜游戲

[英]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循環結束時。

幾點建議:

  1. 無需檢查y > 0y < 100 ,在應用@MasterOfBinary的修正對100做模並加1之后,構造上確實是正確的。但是,如果要使結果嚴格小於100,則對99作模。
  2. 您的響應消息是向后的。 如果a < y他們的猜測太小而不是太大。
  3. 最后的else子句是無用的, else if在其上面的else if變成一個普通else
  4. loopcount = loopcount + 9; 不需要聲明, break; 之后,您立即擺脫困境。
  5. 您可以用增量形式替換其他loopcount語句,即++loopcount; loopcount += 1;
  6. 您的提示和響應字符串最后需要換行符( \\n )。

如果不給隨機數生成器作為種子, rand將始終產生相同的數字序列。 要播種,請使用srand函數。 播種的規范方法是從一天中的時間開始,例如:

#include <time.h>
...
srand(time(NULL));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM