-
LS 的 ** 是錯誤的。
請參閱下面的**。
#include
#include
using namespace std;
void rand( int *array, int num);
功能:用陣列生成 num 個隨機數。
int main()
srand( time( 0 )
int a[10];
rand( a, 10 );
cout<< "---" cout<< a[i] return 0;
void rand( int *array, int num)
int i = 0;
array[i] = rand() 100;生產第乙個。
i = 1;準備生產第二個。
for( ;i < num ;
array[i] = rand()%100;
for( int j=0;j 實現最後乙個,並將其與前乙個進行比較。
if( array[j] != array[i] )
if( j == (i-1) )
直到最後乙個,下乙個才準備好生產。
i++;break;
否則,如果有相同的,它立即退出迴圈並重新生成隨機數,並且不新增 i。
break;
你上面寫的程式很不靈活,如果你想生產5個,你的**是不是要改變很多? 讓我們使用我為您編寫的函式。
最後要強調的一點是:
void rand( int *array, int num);
將引數傳遞給 num 時,它不能大於 array[i] = rand()%100; 在100中
否則,這是乙個無休止的迴圈,為什麼? 你自己想想,不要我什麼都說,不明白就不要給我發資訊,我會告訴你的。 哈哈,測試一下自己的智力。
-
用乙個數字組裝乙個隨機數,乙個陣列表示已經記錄的隨機數;
例如,隨機 0-8 生成乙個隨機的 8 位陣列,陣列中沒有重複的專案;
例如 intarray[8];
intarrayindex[8]=;
intk=0;
srand(100);
while(k<8){
intq=rand()%8+1;
if(arrayindex[q-1]==1){continue;
array[k]=q;
arrayindex[q-1]=1;
k++;擴充套件材料c 語言隨機輸出 1 20 個不重複的隨機數。
#include
#include
#include
voidmain()
inta[20];
inti,j;
srand((int)time(0));
a[0]=rand()%20+1;
for(i=1;i<20;i++)
a[i]=rand()%20+1;
for(j=0;jif(a[i]==a[j])i--;for(i=0;i<20;i++)printf("%3dn",a[i]);
這裡使用了 rand() 函式和 srand() 函式,C C++ 中沒有 random(int number) 函式。 >>>More