本篇文章為大家展示了C語言實現生成1到100隨機數的方法,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創新互聯建站是一家以網絡技術公司,為中小企業提供網站維護、成都做網站、成都網站制作、成都外貿網站建設、網站備案、服務器租用、空間域名、軟件開發、小程序開發等企業互聯網相關業務,是一家有著豐富的互聯網運營推廣經驗的科技公司,有著多年的網站建站經驗,致力于幫助中小企業在互聯網讓打出自已的品牌和口碑,讓企業在互聯網上打開一個面向全國乃至全球的業務窗口:建站聯系電話:028-86922220
生成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隨機數的方法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創新互聯行業資訊頻道。
標題名稱:C語言實現生成1到100隨機數的方法
文章分享:http://m.kartarina.com/article46/pppgeg.html
成都網站建設公司_創新互聯,為您提供做網站、App設計、網站策劃、、網站排名、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯