可以將生成的隨機(jī)數(shù)放入數(shù)組中,每次遍歷數(shù)組,有相同的重新生成隨機(jī)數(shù)。知道生成4個即退出循環(huán)。
10多年的洛浦網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整洛浦建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“洛浦網(wǎng)站設(shè)計”,“洛浦網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
#include?stdio.h
#include?stdlib.h
#include?time.h
int?main()
{
int?num[4],?cnt?=?0,?n;
srand(clock());??//?設(shè)置隨機(jī)數(shù)種子
while?(cnt??4)
{
n?=?rand()?%?4;?//?生成4以內(nèi)隨機(jī)數(shù),這樣更利于測試
for?(int?i?=?0;?i??cnt;?i++)
if?(num[i]?==?n)?//?遍歷數(shù)組,有相同的重新生成隨機(jī)數(shù)
continue;
num[cnt++]?=?n;
}
for?(int?i?=?0;?i??cnt;?i++)?//?打印隨機(jī)數(shù)數(shù)組
printf("%d?",?num[i]);
return?0;
}
#includeiostream
#includetime.h
#includestdlib.h
using namespace std;
int main()
{
int i,j;
int n[10]; //要產(chǎn)生10個隨機(jī)數(shù)
int n1=100; //100個隨機(jī)數(shù)
int n2=51; //從50開始
// n[0]=rand()%n1+n2;//產(chǎn)生50-150的隨機(jī)數(shù)
srand((unsigned)time(NULL));
for(i=0;i10;i++)
{
n[i]=rand()%n1+n2;
while(1) //判斷是否重復(fù)
{
for(j=0;ji;j++)
{
if(n[i]==n[j])
{
n[i]=rand()%n1+n2;
j=0;
break;
}
}
if(j==i)//新隨機(jī)數(shù)與前面幾個隨機(jī)數(shù)都不重復(fù)
break;
}
printf("%d\n",n[i]);//產(chǎn)生從50-150的隨機(jī)數(shù)
}
return 0;
}
//你發(fā)的程序少太多東西也不清楚你要表達(dá)什么意思,唯一理解的是你提出的要求,我編了一個程序可以產(chǎn)生不重復(fù)隨機(jī)數(shù)但是不知道有沒有系統(tǒng)函數(shù)可以這樣做,把n1改成10很明顯可以看見程序是符合要求的
其實(shí)只要做一次種,然后再調(diào)用rand()就能產(chǎn)生不同的結(jié)果了,不用每次調(diào)用rand()之前都用srand()做種的
也就是說你那個程序可以改為
srand(time(0));
for(a=0; a200; a++)
{ /* Two adjacent values of random numbers must be different */
R=rand()/(RAND_MAX+1.0);
b=int(R*num) + 1;
}
randomize()和random()這兩個函數(shù),在c語言的標(biāo)準(zhǔn)庫里面,早就不用了。
現(xiàn)在,要用srand()和rand()來設(shè)置種子和產(chǎn)生隨機(jī)數(shù)了
現(xiàn)在這樣改:
#include
stdio.h
#include
stdlib.h
//#include
main.h
////////有這樣的頭文件么?
#include
time.h
int
main()
{
//randomize();
srand((unsigned)time(null));//用當(dāng)前時間,設(shè)置種子
//printf("
%d",random(100));
printf("
%d",rand()%100);
//生成隨機(jī)數(shù)
return
0;
}
下面是用C產(chǎn)生0-9的隨機(jī)數(shù),rand()函數(shù)產(chǎn)生的是偽隨機(jī)數(shù),反復(fù)調(diào)用函數(shù)rand所產(chǎn)生的一系列數(shù)似乎是隨機(jī)的,但每次執(zhí)行程序所產(chǎn)生的序列則是重復(fù)的。需要用srand()函數(shù)每次給不一樣的種子
#include
stdlib.h
//標(biāo)準(zhǔn)工具庫,要用到其中的rand()
#include
stdio.h
#includeconio.h
#include
time.h
//時間庫,要用到里面的時間來做隨機(jī)數(shù)的種子
int
main(void)
{
int
i;
srand(time(NULL));
printf("Ten
random
numbers
from
to
9\n\n");
for(i=0;
i10;
i++)
printf("%d\n",
rand()%10);
getch();
return
0;
}