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 計算...