假設要生成的隨機數(shù)是大于等于20且小于等于100的整數(shù)
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供蕭山企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、網(wǎng)站建設、html5、小程序制作等業(yè)務。10年已為蕭山眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設公司優(yōu)惠進行中。
#includestdio.h
#includetime.h
#includestdlib.h
void?main()?{?int?a,b,x;
a=20;?b=100;
srand((unsigned?int)time(NULL));?//用當前時間生成一個隨機數(shù)種子
x=rand()%(b-a+1)+a;
printf("得到一個隨機數(shù):%d\n",x);
}
1、首先打開Visual stdio 2019,依次點擊文件,新建,項目新建以一個空白的項目:
2、新建新項目以后,右鍵點擊左邊的源文件,選擇添加,點擊添加項:
3、選擇cpp,并將下方的擴展名改為.c,然后點擊確定:
4、接下來就可以用編譯器編譯,使用rand()函數(shù)產(chǎn)生C語言的隨機數(shù),需要加入stdlib.h和time.h在表頭,rand()函數(shù)需要給srand()函數(shù)提供一個參數(shù),不然系統(tǒng)會給定一個默認的參數(shù),如果參數(shù)為一任意的常量的話,得到的也是偽隨機數(shù):
4、按ctrl+F5就可以運行程序了,在彈出的窗口中就會看到得到的所有隨機數(shù)了:
#include stdio.h
#include stdlib.h
#include time.h
#define N 10
main()
{
int i,a,b;
srand(time(0)); /*設置種子,并生成偽隨機序列*/
while(~scanf("%d",b))
{
for(i=0;iN;++i)rand()%10;
a = rand()%100;
while(1)
{
if(a == b){puts(" 恭喜你 猜對了 !\n***************\n");break;}
elseif(a b)puts("你輸入的數(shù) 小了!");
else puts("你輸入的數(shù) 大了!");
scanf("%d",b);
}
}
system("pause");
}
rand函數(shù)也是調(diào)用dos的時鐘,進行的偽隨機函數(shù).
你也可以使用時鐘來模擬隨機函數(shù).
可以試用gettime這個函數(shù):
long int MyRand(int x)
{
struct time t1,t2,t3;
gettime(t1);
int y1=t1.ti_hund;//取1/100s作為基數(shù)
gettime(t2);
int y2=t2.ti_hund;//取1/100s作為基數(shù)
gettime(t3);
int y3=t3.ti_hund;//取1/100s作為基數(shù)
return y1*y2*y3;//產(chǎn)生的隨機數(shù)0~99*99*99
}
randomize();
random(100);
都不是標準的庫函數(shù)。
srand 產(chǎn)生 種子,用來初始化,供 計算偽隨機數(shù)序列。
rand 計算隨機數(shù),用當前種子,即 默認種子或 srand 產(chǎn)生的 種子。
不同編譯器,庫函數(shù)名可能不同,但基本原理相同。一個產(chǎn)生種子,一個計算偽隨機數(shù)序列。
如果不用srand 產(chǎn)生新的種子,偽隨機數(shù)序列是不變的。達不到模擬“隨機”的目的。
#includestdio.h
#includestdlib.h
#includetime.h
void?main()
{
int?stud[30],i,j;
int?rand();
float?av=0;//表示平均數(shù)
int?m=0,n=0;//m表示高于平均分的人數(shù),n表示不及格人數(shù)
srand((int)time(0));
for(i=0;i30;i++)
stud[i]=rand()%60+40;
for(i=0;i3;i++)
{
printf("\n");
for(j=0;j10;j++)
{
printf("%4d??",stud[i*10+j]);
av+=stud[i*10+j];
}
}
av/=30;
printf("??%f\n",av);
for(i=0;i30;i++)
{
if(stud[i]av)
m++;
if(stud[i]=60)
n++;
}
printf("高于平均分人數(shù):%d,不及格人數(shù):%d\n",m,n);
}
結(jié)果:
94 ? ?70 ? ?79 ? ?67 ? ?53 ? ?86 ? ?40 ? ?82 ? ?97 ? ?97
50 ? ?87 ? ?98 ? ?71 ? ?42 ? ?91 ? ?69 ? ?66 ? ?72 ? ?91
82 ? ?69 ? ?42 ? ?77 ? ?53 ? ?67 ? ?60 ? ?75 ? ?87 ? ?84 ? ?73.266667
高于平均分人數(shù):15,不及格人數(shù):24
當前名稱:隨機函數(shù)C語言模擬 c語言的隨機數(shù)函數(shù)
網(wǎng)頁地址:http://muchs.cn/article38/dococsp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、網(wǎng)站設計、搜索引擎優(yōu)化、微信小程序、網(wǎng)站營銷、云服務器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)