1. c語言怎麼實現從一個數組中隨機抽取一個元素
隨機產生一個數,然後每次將數組元素的最後一個數與這個數交換,並且數組的長度減1。
int [] b = new int[100];
int t = 0, idx = 0, len = a.length;
for(int i=0;i<len;i++)
{
idx = [rand()*(len-i)];
b[i] = a[idx];
t = a[idx];
a[idx] = a[len - 1];
a[len - 1] = t;
}
return b;
2. C語言如何編程產生隨機數
1、首先打開Visual
stdio
2019,依次點擊文件,新建,項目新建以一個空白的項目:
2、新建新項目以後,右鍵點擊左邊的源文件,選擇添加,點擊添加項:
3、選擇cpp,並將下方的擴展名改為.c,然後點擊確定:
4、接下來就可以用編譯器編譯,使用rand()函數產生C語言的隨機數,需要加入stdlib.h和time.h在表頭,rand()函數需要給srand()函數提供一個參數,不然系統會給定一個默認的參數,如果參數為一任意的常量的話,得到的也是偽隨機數:
4、按ctrl+F5就可以運行程序了,在彈出的窗口中就會看到得到的所有隨機數了:
3. C語言抽取隨機數怎麼編寫
源程序代碼以及演算法解釋如下:
產生1-10隨機數程序:
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
const int n = 10;//定義隨機數個數
int number[n] = { NULL };//定義隨機數存儲的數組
srand((unsigned)time(NULL));//初始化隨機函數
number[0] = rand() % n;//第一個隨機數無需比較
cout << number[0] << " ";
for (int i = 1; i < n; i++)//其餘隨機數循環產生
{
int j = 0;
number[i] = rand() % n;//產生隨機數
while (1)
{
if (number[i] == number[j])//若有相同則繼續循環重新安排隨機數
{
number[i] = rand() % n;//產生隨機數
j = 0;//若遇到相同的就從頭遍歷
continue;
}
if (j == (i - 1))//若遍歷完就跳出
break;
j++;
}
cout << number[i] << " ";
}
cout << endl;
return 0;
}
程序運行結果如下:
(3)c語言里怎麼隨機取一個數擴展閱讀:
利用vector進行隨機數輸出:
#include <iostream>
#include <vector>
#include <time.h>
using namespace std;
int main()
{
const int n = 10;
int randnum;
vector<int> number;
for (int i = 0; i < n; i++)
{
number.push_back(i + 1);//從尾部添加元素
cout << number[i] << " ";
}
cout << endl;
srand((unsigned)time(NULL));
for (int j = 0; j < n; j++)//其餘隨機數循環產生
{
randnum = rand() % (n - j);//rand函數生成的隨機數是0-(n-1)
cout << number.at(randnum) << " ";
number.erase(number.begin() + randnum);
}
cout << endl;
return 0;
}
4. C語言怎麼讓一個變數隨機取一個數
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
intmain(void)
{
inta;
srand(time(NULL));
a=1+rand()%100;
printf("%d ",a);
return0;
}
5. C語言中如何隨機選取數組中的數字(程序代碼請寫出)
應該是a[2][3]={{1,3,2},{8,0,3}} 吧
#include <iostream> //cout函數的頭文件
#include <cstdlib>
#include <time.h> /* srand函數與rand函數的頭文件*/
using namespace std;
int main()
{
int a[2][3]={{1,3,2},{8,0,3}},x,y,z;
srand ( (unsigned) time (NULL) );
x=rand()%2; //調用隨機函數
y=rand()%3; //調用隨機函數
z=a[x][y];
cout<<z<<"\n";
system ("pause");
return 0;
}
三樓,請注意素質...
那是我的版權!!
樓主,一定要注意先來後到!
我本是2樓的,後因稍作修改,沒想到3樓抄襲我。。。
6. C語言中如何選取隨機的數據
srand(time(0));
int
a
=
1
+
(int)rand()/RAND_MAX*99;
在一個數組里把抽取過的數放進去,每次抽時與裡面的比較。有相同的重新抽取就可以了。
7. C語言中怎樣生成隨機數
在VC中設計到隨機數有兩個函數
srand() and rand()
srand() 的作用是是一個種子,提供每次獲得隨機數的基數而已,rand()根據種子而產生隨機數
注意
1:srand() 里的值必須是動態變化的,否則得到的隨機數就是一個固定數
2:其實可以不用寫srand() ,只用rand()就可以了,省事,簡單,例子如下
如果我們想得到一個 0-60的隨機數那麼可以寫成
int i;
i=rand()%60;
就可以了。
當然最好有個統一的標注如下:
int i;
srand((unsigned)time( NULL ));
i=rand()%60;
這樣就OK了。
8. c語言中在給出的數據中隨機取數
#include
#include
#include
int
main(
)
{
int
i;
double
num
[10]=
{
1.2,
1.5,
3.5,
4.7,
2,
3,
4,
5,
6,
7
};
//
……
srand(
(unsigned)time(
NULL
)
);
//
先產生一個0
到
num-1
的隨機數,從你的數據數組中取那個就行了。
//
產生方法rand()
%
10,產生10以內隨機數。
//
比如下面產生10個隨機數,及其對應的你
的數據
for(
i
=
0;
i
<
10;i++
)
printf(
"i
=
%d,
num[i]
=
%lf\n",
rand()%10,
num[i]
);
return
0;
}
9. 怎樣用c語言取一個隨機數
例如:
#include<stdlib.h>
int
i;
i=rand()%10;
就是取0到10(不包括10)之間的隨機數
10. 怎麼用C語言生成隨機數
假設要生成的隨機數是大於等於20且小於等於100的整數
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
voidmain(){inta,b,x;
a=20;b=100;
srand((unsignedint)time(NULL));//用當前時間生成一個隨機數種子
x=rand()%(b-a+1)+a;
printf("得到一個隨機數:%d ",x);
}