當前位置:首頁 » 編程語言 » c語言隨機數生成100

c語言隨機數生成100

發布時間: 2022-12-07 13:54:24

c語言:怎麼生成一個1~100的隨機整數

/*小於100的隨機數函數*/ #include <stdio.h> #include <stdlib.h> #include <time.h> void main() { int i=1000; srand(time(0));//改變隨機數種子 while(i<1||i>100) i=rand(); printf("%d\n",i); }

② 求解,用C語言編寫一個程序,隨機生成100個數,並從大到小排序

//#include"stdafx.h"//vc++6.0加上這一行.
#include"stdio.h"
#include"time.h"
#include"stdlib.h"
intmain(void){
intnDec[100],i,j,k;
srand((unsigned)time(NULL));
for(i=0;i<100;nDec[i++]=rand());
for(i=0;i<100;i++){
for(k=i,j=k+1;j<100;j++)
if(nDec[k]<nDec[j])k=j;
if(i!=k){
j=nDec[i];
nDec[i]=nDec[k];
nDec[k]=j;
}
printf("%d",nDec[i]);
}
printf(" ");
return0;
}

③ 用C語言隨機函數生成100個不大於100的數的具體演算法怎麼寫

http://blog.tianya.cn/blogger/post_show.asp?idWriter=0&Key=0&BlogID=382219&PostID=4547421

以上網有詳細的說明
/*已經上機通過測試:*/

#include <stdlib.h>
main()
{
int a[100],i; /*定義數組存放100個數*/
for(i=0;i<100;i++)
a[i]=random(100); /*產生100以內的數*/

for(i=0;i<100;i++)
printf("%d ",a[i]); /*列印輸入*/
getch();
}

在C語言函數庫中包含了一個產生隨機數的函數:
int rand( void );
在函數庫中對這個函數的說明是:

The rand function returns a pseudorandom integer in the range

0 to RAND_MAX. Use the srand function to seed the pseudorandom

-number generator before calling rand.

而在C語言函數庫中是這樣定義RAND_MAX的:

/* Maximum value returned by "rand" function
*/
#define RAND_MAX 0x7FFF

所以,函數int rand( void );返回的是一個界於0~32767(0x7FFF)之

間的偽隨機數,包括0和32767。注意,這里產生的是偽隨機數,不是真正意

義上的隨機數,看下面的程序:

#include "stdlib.h"
#include "stdio.h"

void main( void )
{
/* Display a number. */
printf( " %6d\n", rand() );

getchar();
}
程序運行的結果是:
346

多次運行這個程序,發現每次產生的結果都是346(不同的機器可能產生

的結果不一樣),這就是所謂的偽隨機數。偽隨機數是通過一個公式來運算

出來的,所以,每次產生的偽隨機數都一樣。那麼,如何才能產生真正意義

上的隨機數呢?這就有一個隨機種子的問題。在C語言標准函數庫中,有這

么一個函數:

void srand( unsigned int seed );

在《The c programming language》中對這個函數是這樣描述的:
srand uses seed(函數變數聲明中的seed) as the seed(隨機函數中種子

的意思) for a new sequence of pseudo-random numbers. The

initial seed is 1.

所以,要產生真正意義上的隨機數,那麼就要求每次提供的種子不一樣,一

般情況下,都設置時間為隨機函數的種子。看下面的一段程序:

/* RAND.C: This program seeds the random-number generator
* with the time, then displays 10 random integers.
*/

#include "stdlib.h"
#include "stdio.h"
#include "time.h"

void main( void )
{
int i;
/* Seed the random-number generator with current time so that
the numbers will be different every time we run.
將當前時間設置成隨機函數的種子,所以每次產生的數都不一樣
*/
srand( (unsigned)time( NULL ) );
/* Display 10 numbers. */
for( i = 0; i < 10;i++ )
printf( 「 %6d\n」, rand() );
}
Output

6929
8026
21987
30734
20587
6699
22034
25051
7988
10104

每次運行這個程序,產生的隨機數都不一樣,這樣就達到了隨機數的要求了

④ c語言生成1 - 100的不重復隨機數

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
intRand(intX,intY)//生成隨機數
{
inttemp;
if(X>Y)
{
temp=X;
X=Y;
Y=temp;
}
returnrand()%(Y-X+1)+X;

}

voidmain()
{
intarr[100];
inti;
intr;
inttemp;
srand((unsigned)time(NULL));
for(i=0;i<100;i++)arr[i]=i+1;//將數組賦值1~100
for(i=0;i<100;i++)
{
r=Rand(0,99);
temp=arr[i];
arr[i]=arr[r];
arr[r]=temp;
}//數組亂序
for(i=1;i<=100;i++)
{
printf("%3d",arr[i-1]);
if(i%10==0)
printf(" ");


}


}

⑤ C語言如何srand和rand函數產生10個1-100內的隨機數知道

先用srand函數設置一個種子,一般為當前時間,然後使用rand函數產生隨機數,如產生a~b的隨機數使用表達式rand()%(b-a+1)+a。
注意:srand函數在頭文件#include
<stdlib.h>中。
示例代碼:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a[10]/*用於保存10個產生的隨機數*/, i;
srand((unsigned int)time(NULL));//設置當前時間為種子
for (i = 0; i < 10; ++i){
a[i] = rand()%100+1;//產生1~100的隨機數
}
//列印生成的隨機數
for (i = 0; i < 10; ++i){
printf ("%d ", a[i]);
}
printf ("\n");
return 0;
}

⑥ 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;
}

⑦ 你好,怎樣用c語言輸出一個1到100的隨機數

源程序如下:

#include "pch.h"

#include <iostream>

#include <time.h>

using namespace std;

int main()

{

const int n = 10000;

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;

}

程序運行結果:


(7)c語言隨機數生成100擴展閱讀:

其他實現方式:

#include<time.h> //使用 time 函數必須引入 time.h 頭文件

#include<stdlib.h>

int main()

{

srand((int)time(0));

int rand_num = rand();

printf("rand_num = %d ", rand_num);

return 0;

}

⑧ C語言怎麼產生30-100的隨機數

利用C提供的偽隨機數產生函數rand實現。為了獲得「逼真隨機」效果,隨機數產生前應當用當前時間值調用庫函數srand來設定偽隨機數產生器的初始值(常稱下種子)。rand函數默認生成0~32767的隨機數,為達到題設30~100的要求,要將由rand生成的隨機數對71取模處理來獲得0~70的范圍,然後再+30便得到題解。代碼如下(以產生100個0~70的范圍隨機數為例):

#include"stdio.h"
#include"stdlib.h"//調用srand和rand需包含此文件
#include"time.h"//調用time需包含此文件
intmain(intargc,char*argv[]){
intn,l;
srand((unsigned)time(NULL));//調用庫函數sran為偽隨機產生器下種子
for(l=n=0;n<100;n++)
printf(++l%15?"%4d":"%4d ",rand()%71+30);//由rand()%71+30獲得30~100的范圍
if(l%15)
printf(" ");
return0;
}

運行樣例如下:

熱點內容
壓縮段的作 發布:2025-01-20 07:04:13 瀏覽:377
安卓studio字體如何居中 發布:2025-01-20 07:04:13 瀏覽:150
edge瀏覽器無法訪問 發布:2025-01-20 06:52:57 瀏覽:329
c語言inline函數 發布:2025-01-20 06:45:43 瀏覽:746
安卓手機如何把鎖屏時間去掉 發布:2025-01-20 06:34:16 瀏覽:434
linux卸載jdk17 發布:2025-01-20 06:33:29 瀏覽:230
猿編程使用 發布:2025-01-20 06:17:58 瀏覽:452
編譯lichee 發布:2025-01-20 06:16:33 瀏覽:156
f5演算法 發布:2025-01-20 06:11:39 瀏覽:255
吃雞游戲伺服器被鎖怎麼辦 發布:2025-01-20 06:04:21 瀏覽:176