两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

在學(xué)習(xí)C語言過程中,有的時(shí)候我們需要隨機(jī)生成一些數(shù)字,不按照我們?nèi)藶榈囊庾R隨機(jī)生成,就需要借助C語言的兩個(gè)函數(shù)幫我們實(shí)現(xiàn),就是rand和srand函數(shù),使用這個(gè)兩個(gè)函數(shù)需要首先包含頭文件<stdlib.h>,下面給大家展示使用方法

首先是rand函數(shù),它的作用就是生成一個(gè)0~RAND_MAX之間一個(gè)數(shù)字,RAND_MAX和EOF本質(zhì)一樣是一個(gè)宏定義,不同編譯器定義的大小不一樣,如有的編譯器表示十六進(jìn)制 0x7fff(對應(yīng)十進(jìn)制為32767),如下圖:


隨機(jī)數(shù)


rand函數(shù)的原型也很簡單:int  rand(void); 即不需要傳參直接使用即可通過返回值的方式生成,我們可以簡單敲出完整代碼,如下:


#include <stdio.h>
#include <stdlib.h>
int main()
{    
    int a = rand();    
    printf("%d\n",a);    
    return 0;
}


大家可以自行上機(jī)運(yùn)行試驗(yàn),但是呢,不管打印出來的數(shù)字是多少,大家多運(yùn)行幾次就會(huì)發(fā)現(xiàn),好像每次運(yùn)行的出來的數(shù)值都一樣!其實(shí)rand函數(shù)每次隨機(jī)出來的數(shù)字其實(shí)與所謂的“種子”有關(guān),rand函數(shù)生成隨機(jī)數(shù)其實(shí)并非真正意義上的隨機(jī),即真正我們理解的像“用手隨機(jī)拋硬幣”的隨機(jī),這個(gè)函數(shù)當(dāng)然是模擬隨機(jī)的效果,是按照一定的“公式”實(shí)現(xiàn)出來的,這個(gè)“公式”中的變量即前面提到的種子,在前面的例子中,我們并沒有用到“種子”,那么系統(tǒng)會(huì)自動(dòng)給1,因此你會(huì)得到每次都是一樣的隨機(jī)值。所以要想改變這一問題,將需要用第二個(gè)函數(shù)srand來幫我們種種子,來達(dá)到每次不一樣的效果。

srand的函數(shù)的原型為:void  srand(unsigned seed); 即需要傳入一個(gè)無符號整形的數(shù)值,比較聰明的做法呢就是傳入系統(tǒng)時(shí)間,通過time函數(shù)(需要加time.h的頭文件)獲取時(shí)間然后傳入,這樣每次種子都不一樣,因此rand得到的隨機(jī)數(shù)也將不同,所以呢就有了這樣的寫法:

srand((unsigned)time(NULL));

因此,我們只要在用rand函數(shù)生成隨機(jī)數(shù)之前,先執(zhí)行srand函數(shù)即可,完整代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	int r=0;
	int i=0;
	srand((unsigned)time(NULL));
	while(i++<10)
	{
		printf("r = %d\n",rand());
	}
	return 0;
}

大家可以上機(jī)運(yùn)行觀察,每次得到的數(shù)字就不同了,請大家親自上機(jī)實(shí)驗(yàn)。





點(diǎn)贊(1)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個(gè)爬蟲的Python編程課程

只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)