日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

c語言如何設置隨機數及逐行解析_C 語言

作者:菜花籽 ? 更新時間: 2022-12-10 編程語言

一.產生隨機數

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{
	int n = 0;
	srand((unsigned int)time(NULL));
	n = rand();
	printf("產生一個隨機數 %d", n);
	return 0;
}

運行結果

二.逐行解析

1.rand()函數

在我的MSDN里,rand()函數的返回值是int,頭文件是stdlib.h

這句話的意思是:rand函數返回一個偽隨機數,如果超出范圍,則返回錯誤。rand的范圍是0 到RAND_MAX(0到32767)

這里值得注意的是什么是偽隨機,下面舉個例子

我們不難看出雖然打印隨機數,但每次打印的隨機數都一樣,所以怎么辦呢?我們就需要一個隨機數種子strand啦

2.srand()函數

srand的返回值是void,里面傳參需要一個unsigned int類型的seed(種子),我們可以看出其實這就是一個設置種子的函數,那么我們設置什么種子呢?

因為我們想要的隨機數時時刻刻都要改變,那么毫無疑問就時間是在無時無刻都在改變的,所以我們設置一個時間種子

3.time()函數

time函數的返回值類型是(time_t),但我們要按照srand函數的要求將其強制轉化為(unsigned int)。它的頭文件是time.h。它所需要的參數是一個指針,但我們并不需要給它傳參,所以我們用(NULL)

time函數返回的值是每時每秒,所以它的值是變化的
最終我們就寫出了一個時間種子srand((unsigned int)time(NULL))

三.生成有范圍的隨機數

有時候,隨機數生成的范圍太大了,我們該怎么縮小它的范圍呢?

由此不難看出其實我們需要哪個范圍,只需要rand()%n,就可以了

原理也很簡單,一個隨機數%100那么它的值就會是0-99

總結

原文鏈接:https://blog.csdn.net/m0_73790767/article/details/127762283

欄目分類
最近更新