c語言產(chǎn)生0到9隨機(jī)函數(shù) c語言產(chǎn)生1~10隨機(jī)數(shù)

C語言 產(chǎn)生3個(gè) 0到9的隨機(jī)數(shù)

C語言函數(shù)名rand()

創(chuàng)新互聯(lián)建站是一家從事企業(yè)網(wǎng)站建設(shè)、做網(wǎng)站、成都網(wǎng)站建設(shè)、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)制作的專業(yè)網(wǎng)站制作公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁(yè)設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)成百上千家。

簡(jiǎn)介

功 能::偽隨機(jī)數(shù)發(fā)生器 所屬庫(kù):stdlib.h

用 法: 需要先調(diào)用srand初始化,一般用當(dāng)前日歷時(shí)間初始化隨機(jī)數(shù)種子,這樣每次執(zhí)行代碼都可以產(chǎn)生不同的隨機(jī)數(shù)。

函數(shù)原型:int rand(void); 相關(guān)函數(shù):srand、time、GetTickCount

程序例

1: #include "stdio.h"

#include "stdlib.h"

int main(void) {

int i;

printf("Ten random numbers from 0 to 99\n\n");

for(i=0; i10; i++)

printf("%d\n", rand() % 100);

return 0; }

例1程序在每次運(yùn)行時(shí)都會(huì)生成相同的十個(gè)偽隨機(jī)數(shù),如要每次生成的隨機(jī)數(shù)不同應(yīng)結(jié)合srand函數(shù)和time函數(shù)。

///////////////////

int i,a;

for(i=0;i3;i++)

{

a=rand()%9;

printf("%d",a);

}

C語言隨機(jī)函數(shù)怎樣產(chǎn)生0-9互不相同的10個(gè)隨機(jī)數(shù)

對(duì)已經(jīng)獲取到的隨機(jī)數(shù)做標(biāo)記,如果已經(jīng)獲取到過,那么則放棄該隨機(jī)數(shù),并繼續(xù)獲取。

直到獲取到所有隨機(jī)數(shù)為止。

參考代碼如下:

#include?stdio.h

#include?stdlib.h

#include?time.h

int?main()

{

int?a[10];//存儲(chǔ)獲取到的隨機(jī)數(shù)。

int?f[10]?=?{0};//存儲(chǔ)是否獲取到過。

int?n?=?0;?//計(jì)數(shù)器。

srand(time(NULL));//設(shè)置隨機(jī)數(shù)種子。

while(n10)

{

int?m?=?rand()%10;?//獲取一個(gè)0~9的隨機(jī)數(shù)。

if(f[m])?continue;//該數(shù)之前已經(jīng)獲取到過。

a[n++]?=?m;//將該數(shù)存入數(shù)組。

f[m]?=?1;//標(biāo)記該數(shù)已經(jīng)獲取過。

}

for(n?=?0;?n??10;?n++)//打印結(jié)果。

printf("%d,",a[n]);

return?0;

}

如何用C語言產(chǎn)生不重復(fù)的0到9之間的隨機(jī)數(shù)

剛調(diào)試了下,弄不明白的是,為什么SZ[10]明明不存在卻永遠(yuǎn)是產(chǎn)生的r對(duì)應(yīng)輸出的數(shù)。。。

費(fèi)解呀。但好像用9來說應(yīng)該會(huì)更規(guī)范一些。

最后都沉底了。

。。。。又研究了20分鐘,終于弄懂了。。。實(shí)際上應(yīng)該是9更標(biāo)準(zhǔn)一些,雖然10不會(huì)溢出。。。rang()%(10-i)第一個(gè)從0-9里選,然后選過的消失。。。最后一個(gè)為9

第二次從0-8里選,選過的消失。。。最后2個(gè)為9,以后永遠(yuǎn)都選不上第8和第九。無論9出沒出現(xiàn)過,以此類推。最終全部為九,其余消失。

如果為10的話,其實(shí)也影響不了,因?yàn)樽詈髱讉€(gè)數(shù)永遠(yuǎn)都不會(huì)取到、

采納了吧。。。。。。

額,其實(shí)最標(biāo)準(zhǔn)的應(yīng)該把那個(gè)地方改成9-i,把沒選的數(shù)字往前推,但是已經(jīng)出現(xiàn)的過的就不必推了。。。

網(wǎng)頁(yè)名稱:c語言產(chǎn)生0到9隨機(jī)函數(shù) c語言產(chǎn)生1~10隨機(jī)數(shù)
地址分享:http://muchs.cn/article38/doscepp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、面包屑導(dǎo)航、品牌網(wǎng)站設(shè)計(jì)關(guān)鍵詞優(yōu)化企業(yè)網(wǎng)站制作、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管