首頁 >後端開發 >C#.Net教程 >C語言中如何產生1~100的隨機數(附代碼)

C語言中如何產生1~100的隨機數(附代碼)

烟雨青岚
烟雨青岚原創
2020-06-29 11:32:0654687瀏覽

C語言中如何產生1~100的隨機數(附代碼)

在C語言中是如何產生1~100的隨機數的呢?想必大家都想了解吧,那話不多說,跟著小編一起了解一下吧。

C語言如何產生隨機數字

產生10個1~100的隨機數

廢話不多說直接上程式。

#include<stdio.h>#include<stdlib.h>#include<time.h> int main()
{int ret = 0;
srand((unsigned int)time(NULL));for(int i=0; i<p><img src="https://img.php.cn/upload/image/171/688/281/1593401322583907.png" title="1593401322583907.png" alt="C語言中如何產生1~100的隨機數(附代碼)"></p>
<p>這個程式是用來產生10個隨機的數字。接下來會詳細說一說這個程序的構成。 </p>
<p><strong>隨機數產生程式碼的分析</strong></p>
<p><strong>以上程式的關鍵程式碼是:</strong></p>
<pre class="brush:php;toolbar:false"> srand = ((unsigned)time(NULL));
 ret = rand()%100;

rand()函數所需頭檔是

#include<stdlib.h></stdlib.h>

rand()是產生偽隨機數的函數,它會依照一定的序列來產生隨機數,但它序列是固定的:

C語言中如何產生1~100的隨機數(附代碼)

程式每次執行它都會按照這個序列來給出隨機數,所以在對rand()不加限制條件的話,產生的隨機數不夠隨機。

time()函數所需頭的頭檔是:

#include<time.h></time.h>

time()函數,值得注意的是time函數的形參,這個形參是個指標變數,通常寫成time(NULL)。
 這個函數的功能是,返回自1970年1月1日00:00:00到你先在電腦運作的時間(例:2018年3月24日14:14:00)之間的時間。這個數字是隨機的,隨著你電腦運行時間而改變。

srand()函數所需的頭檔是:

#include<stdlib.h></stdlib.h>

srand()函數是偽隨機數產生器種子,它給rand()函數一個產生一個起點。在單獨使用rand()函數的時候,它將1作為預設參數。 srand()的形參是一個無符號的型別,也就是unsigned型,可以是int,float,char等等。
但在這裡為了達到隨機數效果,將使用time()函數來產生一個起點,它直接作用於rand()函數。

注意:

   ret = rand()%100;

rand() 0是為了產生100以內的隨機數。

有趣的小程式

這是一個電腦自己猜數字的小程式。

#include<stdio.h>#include<time.h>#include<process.h>#include<stdlib.h>#include<windows.h>int main()
{    int ret = 0;    int guess = 0;    int left = 0;    int right = 100;
    srand((unsigned int)time(NULL));
    ret = rand() % 100;    printf("提供的答案数是->%d\n",ret);
    guess = 50;    while (1)
    {        if (guess > ret)
        {            printf("猜大了->%d\n", guess);
            right = guess;
            guess = (right + left) / 2;
            Sleep(1000);
        }        else if (guess %d\n", guess);
            left = guess;
            guess = (right + left) / 2;
            Sleep(1000);
        }        if (guess == ret)
        {            printf("猜到了是%d", guess);            break;
        }
    }
    system("pause ");    return 0;
}</windows.h></stdlib.h></process.h></time.h></stdio.h>

C語言中如何產生1~100的隨機數(附代碼)

這裡使用了二分法的思想,讓電腦自己去猜100以內的一個數字。
使用了Sleep()函數用來延遲一下列印時間,Sleep()函數的參數的單位是ms,所以1000ms=1s。

謝謝您的閱讀

本文轉自:https://blog.csdn.net/H_Strong/article/details/79678269

推薦教學:《C語言

以上是C語言中如何產生1~100的隨機數(附代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn