在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()是產生偽隨機數的函數,它會依照一定的序列來產生隨機數,但它序列是固定的:
程式每次執行它都會按照這個序列來給出隨機數,所以在對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>
這裡使用了二分法的思想,讓電腦自己去猜100以內的一個數字。
使用了Sleep()函數用來延遲一下列印時間,Sleep()函數的參數的單位是ms,所以1000ms=1s。
謝謝您的閱讀
本文轉自:https://blog.csdn.net/H_Strong/article/details/79678269
推薦教學:《C語言》
以上是C語言中如何產生1~100的隨機數(附代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!