如何產生一個隨機數,在兩個隨機數之間。

如何讓電腦較爲快的,不重複的猜到1-100直接的一個隨機數。 io

以c語言爲例,例如在猜1-100的數字時,假如,隨機產生一個數字number=rand()%100+1,那麼若是隨機猜的第一個數字大於了number,咱們就把這個數存到end裏面,若是隨機猜的第二個數字小於了number,咱們就把這個數字存到first裏面,那麼問題就是接下來產生的隨機數要在介於first和end之間的一個隨機數,則,用rand()%(end-first)+first能夠獲得這個隨機數。 隨機數

如下爲示例代碼:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int func(int first,int end)
{
    return rand()%(end-first) +first+1;
}
int main(void)
{
    srand(time(NULL));
    int num_1=rand()%100+1;
    //int num_2;
    int count=0;
    int first=0;
    int end=100;
    printf("須要猜的數字爲:%d\n",num_1);
    while(1)
    {
        printf("請你猜一個數:\n");
        int num_2=func(first,end);
        printf("%d",num_2);
        if(num_2>num_1)
        {
            printf("你輸入的數大了!\n");
            end=num_2;
            count++;
        }
        else if(num_2<num_1)
        {
            printf("你輸入的數小了!\n");
            first=num_2;
            count++;
        }
        else
        {
            printf("恭喜你答對了哦!\n");break;
        }
    }
    printf("你一共用了%d次哦",count);
    return 0;
} im

相關文章
相關標籤/搜索