您好,登錄后才能下訂單哦!
本篇文章為大家展示了C語言實現生成1到100隨機數的方法,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
生成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<10; i++) { ret = rand()%100;printf("%d ",ret); }return 0; }
這個程序是用來生成10個隨機的數。接下來會詳細說一說這個程序的構成。
隨機數生成代碼的分析
以上程序的關鍵代碼是:
srand = ((unsigned)time(NULL)); ret = rand()%100;
rand()函數所需頭文件是
#include<stdlib.h>
rand()是生成偽隨機數的函數,它會按照一定的序列來生成隨機數,但是它序列是固定的:
程序每次執行它都將按照這個序列來給出隨機數,所以在對rand()不加限制條件的話,生成的隨機數不夠隨機。
time()函數所需要頭的頭文件是:
#include<time.h>
time()函數,值得注意的是time函數的形參,這個形參是個指針變量,通常寫為time(NULL)。
這個函數的功能是,返回自1970年1月1日00:00:00到你先在電腦運行的時間(例:2018年3月24日14:14:00)之間的時間。這個數是隨機的,隨著你電腦運行時間而發生改變。
srand()函數所需要的頭文件是:
#include<stdlib.h>
srand()函數是偽隨機數發生器種子,它給rand()函數一個產生一個起點。在單獨使用rand()函數的時候,它將1作為默認參數。srand()的形參是一個無符號的類型,即unsigned類型,可以是int,float,char等等。
但在這里為了達到隨機數效果,將使用time()函數來產生一個起點,它直接作用于rand()函數。
注意:
ret = rand()%100;
rand()%100是為了產生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 < ret) { printf("猜小了->%d\n", guess); left = guess; guess = (right + left) / 2; Sleep(1000); } if (guess == ret) { printf("猜到了是%d", guess); break; } } system("pause "); return 0; }
這里使用了二分法的思想,讓電腦自己去猜100以內的一個數。
使用了Sleep()函數用來延遲一下打印時間,Sleep()函數的參數的單位是ms,所以1000ms=1s。
更多相關資訊:
上述內容就是C語言實現生成1到100隨機數的方法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。