A. c語言如何實現隨機生成多個數組至少要100個
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
B. 如何用c語言產生一定范圍內的隨機數
利用srand((unsigned int)(time(NULL))是一種方法,因為每一次運行程序的時間是不同的。
在C語言里所提供的隨機數發生器的用法:現在的C編譯器都提供了一個基於ANSI標準的偽隨機數發生器函數,用來生成隨機數。它們就是rand()和srand()函數。這二個函數的工作過程如下:
1) 首先給srand()提供一個種子,它是一個unsigned int類型,其取值范圍從0~65535;
2) 然後調用rand(),它會根據提供給srand()的種子值返回一個隨機數(在0到32767之間)
3) 根據需要多次調用rand(),從而不間斷地得到新的隨機數;
4) 無論什麼時候,都可以給srand()提供一個新的種子,從而進一步「隨機化」rand()的輸出結果。
下面是0~32767之間的隨機數程序:
#include <stdlib.h>
#include <stdio.h>
#include <time.h> // 使用當前時鍾做種子
void main(void)
{int i;
srand((unsigned)time( NULL ) ); // 初始化隨機數
for(i = 0; i < 10;i++) // 列印出 10 個隨機數
printf("%d ", rand() );
}
根據上面的程序可以很容易得到0~1之間的隨機數:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main( )
{int i;
srand((unsigned)time( NULL ) );
for(i = 0; i < 10;i++)
printf("%5.2f ", rand()/32767.0);
}
而產生1~100之間的隨機數可以這樣寫:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main( )
{int i;
srand((unsigned)time( NULL ) );
for(i = 0; i < 10;i++)
printf("%d ", rand()%100+1);
}
(2)c語言產生隨機數組中擴展閱讀:
C語言高效編程技巧:
一:以空間換時間
計算機程序中最大的矛盾是空間和時間的矛盾,那麼,從這個角度出發逆向思維來考慮程序的效率問題
二:數學方法解決問題
數學是計算機之母,沒有數學的依據和基礎,就沒有計算機發展,所以在編寫程序的時候,採用一些數學方法會對程序的執行效率有數量級的提高。
三:使用位操作
實現高效的C語言編寫的第三招----使用位操作,減少除法和取模的運算。
在計算機程序中,數據的位是可以操作的最小數據單位,理論上可以用「位運算」來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做數據變換使用,但是,靈活的位操作可以有效提高程序運行的效率。
C. C語言 如何隨機生成數組
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{ int n,i,*a,max;
printf("請輸入數組的大小:");
scanf("%d",&n);
printf("請輸入最大隨機數的大小:");
scanf("%d",&max);
a=(int*)malloc(n*sizeof(n));
srand(time(0));
for(i=0; i<n; i++)
{ a[i]=rand()%(max+1);
printf("%8d",a[i]);
}
return 0;
}
D. c語言如何實現隨機數字的產生
數學意義上的隨機數在計算機上已被證明不可能實現。通常的隨機數是使用隨機數發生器在一個有限大的線性空間里取一個數。「隨機」甚至不能保證數字的出現是無規律的。
我覺得你的程序邏輯似乎不對,看程序a的值應該來自數組num[],假如在第一個for循環中生成的x值為1,第二次仍然生成1,程序將陷入死循環,又或者a是某個特定值,只是你應該給出說明。
使用系統時間作為隨機數發生器是常見的選擇,參考下面的隨機輸出1個1~99數字的程序:
#include
#include
#include
int
main(void)
{
int
i;
time_t
t;
srand((unsigned)
time(&t));
printf("ten
random
numbers
from
0
to
99\n\n");
for(i=0;
i<10;
i++)
printf("%d\n",
rand()
%
100);
return
0;
}
E. 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樓抄襲我。。。
F. C語言中如何生成一個隨機數組
代碼: #include<time.h>
#include<stdlib.h>
#include<stdio.h>void main()
{
srand( (unsigned)time( NULL ) );
int a[100];
printf("隨即初始化數組的100個數(范圍是0~100).\n");
for(int i=0;i<100;i++)
{
a[i]=rand()%101;
printf("%4d",a[i]);
if(i%10==0 && i!=0)
printf("\n");
}
getchar();
}
圖:
G. C語言中如何產生隨機的二維數組的坐標
使用隨機函數即可產生隨機數。
1、C語言提供了一些庫函數來實現隨機數的產生。C語言中有三個通用的隨機數發生器,分別為rand函數,random函數,randomize函數
2、但是rand函數產生的並不是真意正義上的隨機數,是一個偽隨機數,是根據一個數,稱之為種子,為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非破壞了系統,為了改變這個種子的值,C提供了srand()函數,它的原形是voidsrand(inta)。
3、在調用rand函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。一般用for語句來設置種子的個數。
舉例:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
inta[10][2];
inti,j,x,y;
srand(time(NULL));/*隨機數種子*/
for(i=0;i<10;i++)
for(j=0;j<2;j++)
{
a[i][j]=0+rand()%10;/*產生0到10(不包括10)之間的隨機數*/
}
printf("輸出元素: ");
for(i=0;i<10;i++)
for(j=0;j<2;j++)
{
printf("a[%d][%d]=%d",i,j,a[i][j]);
if((j+1)%2==0)
printf(" ");
}
getchar();
return0;
}
H. c語言怎麼生成隨機數
你好!
#include<stdio.h>
#include<stdlib.h>//生成隨機數用
#include<time.h>//利用時間生成種子
#include<math.h>
intmain()
{
inti;
inta[100];
srand(time(NULL));//生成種子
for(i=0;i<100;i++)
{
a[i]=rand()%1000+1000;//生成一個小於1000的隨機數
//然後加1000,變成1000-2000之間的數
printf("%d",a[i]);//列印
}
i=rand()%100;//隨機抽取其中的一個數
printf("
抽取到的是:%d
",a[i]);//列印
return0;
}
I. 如何在c語言中生成定和的隨機數組
這種需求最好是使用遞歸結構,比如你想要和是100的一組隨機數,第一次隨機可以使用100去模 rand()從而產生小於100的一個隨機數,第二次需要100減去上次產生的隨機數結果然後再去模 rand()。依次類推,每一次產生隨機數都需要使用上一次的結果,然後用100去減它,然後在模 rand()。所以最方便的就是遞歸函數了。
大概的偽代碼
int my_rand(int last_rand)
{
int ret;
ret = (100-last_rand)%rand();
ret放入數組中;
my_rand(ret);
retrun ret;
}