C語言寫乙個兩位的隨機數程式

2025-02-17 19:45:09 字數 1838 閱讀 6824

1樓:系長征慕詩

這是2樓的,方法非常正確。

兩位數:也就是10~99了。

這裡可以用生成隨機數取餘的方法得到,比如任何整數除以100取餘,那得到的是0~99的數,那怎麼得到10~99呢?

任何整數除以90取餘,那得到的是0~89的數,再加上10,也就是得到10~99的數了。

#include

#include

#include

voidmain(

voidint

i,k;srand(

unsigned)time(null

for(ii10;i++

k=rand()%90+10;

這就ok了。

printf(

k=%d",k

2樓:印永修出碧

下面程式**可以實現你的需要0~999隨機數。望。

#include

#include

#include

intrandom()

intintrand;

intrand

rand()%999

return

intrand;

voidmain()

srand(time(0));

printf("%d",random())

微控制器c語言如何產生隨機數

3樓:網友

keil裡面產生隨機數的函式確實是rand(),但標頭檔案是,不是。

4樓:督書肖明

標頭檔案是利用pc機的系統時間,而微控制器沒有,需要用定時器來模擬。在c51中rand函式是有的,包含標頭檔案就可以呼叫了。下面是我之前回答過的問題,跟你的問題很類似如有什麼不清楚歡迎追問!

5樓:舜儀岑芳洲

其他的庫函式sand

rand都是偽隨機數。

使用若干個一直執行的timer,作為隨機源最好,不影響功耗沒有多餘開銷。

ad也可以不過測量的源在某個時間內隨機範圍比較小,可以選不同的源,比如懸空的io電平,vcc,或者內部溫度,等等。

如果有外部輸入可以把這個作為隨機源,比如有使用者按鍵盤,或者外部通訊。

6樓:網友

keil本身是不帶標頭檔案的,除非你自己構造乙個。

7樓:匿名使用者

奢侈,浪費,乘除取餘在8位的微控制器中都好費時間和**,再搞個rand 函式太奢侈了啊。

c52中帶ad的話,倒是可以模似出隨機來,思路是指定乙個腳為ad輸入口,並啟動ad功能,同時這個接腳置反或不停的置1置0,待轉換完成了取轉換結果, 理論上講,跳變中的電位應當是比較隨機的值。

8樓:網友

1、c語言提供了一些庫函式來實現隨機數的產生。c語言中有三個通用的隨機數發生器,分別為 rand函式, random函式, randomize 函式。

2、但是rand函式產生的並不是真意正義上的隨機數,是乙個偽隨機數,是根據乙個數,稱之為種子,為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公佈,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非破壞了系統,為了改變這個種子的值,c提供了srand()函式,它的原形是void srand( int a)。

3、在呼叫rand函式產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在呼叫時會自動設隨機數種子為1。一般用for語句來設定種子的個數。

9樓:網友

用兩個執行的定時器中的值乘一下,取個位或十位上的數可以嗎?

用C語言寫出一道關於隨機數的程式設計題

這麼多問估計想寫的不多,我正在程式設計。順便給你個思路吧while k 0 printf 一共有 d位 n i printf 輸出 這裡是m i 1 裝著第乙個數字比如說1349的1,i為判斷出來的位數 for j i 1 j 0 j printf d m j printf n 之後迴圈檢測m中的每...

如何在C語言中生成一定範圍內的隨機數

srand int time null 設定隨機數種子rand 100 產生0 99的隨機數。高階點的,假如要產生16 59之間的數,你可以這樣寫 rand 44 16 這裡44由59 16 1得到 其他情況如法炮製!c語言中用rand 函式產生20 90的隨機整數20 90共有71個數字,所以是r...

c語言設計簡單的計算器程式c語言設計乙個簡單的計算器程式

include stdio h 計算器 voidmenu 自定義的選單介面 printf n printf 請輸入你的選擇 n printf 1 n printf 2 n printf 3 n printf 4 n printf n intmain inti 0 intj 0 intnum 0 計算...