c++ 如何編寫隨機產生一年內的時間,如這樣的格式2015/4/8 0:
1樓:網友
可以按以下步驟實現:
1.乙個產生 min~max 之間隨機汪衝凳數(整困旅數)的函式。
int randnum(int min, int max)
return (rand() max - min + 1)) min;
2. 手工賦值 struct tm 的成員,產生兩個 struct tm 的物件,表示 0:0:0 和 23:59:59
3. 用 mktime 把上面兩個 tm 物件轉換成 time_t 值(整數值判鏈,即相對於unix標準時間的流逝時間)
4. 用 randnum 函式對上一步的兩個時間整數值計算,得出這兩個值之間的乙個隨機數。
5. 用 gmtime 函式將上一步的時間整數值轉換回 tm 物件。
6. 用 strftime 函式將 tm 物件格式化為字串,按 yyyy/mm/dd hh:mm 的格式。
為什麼我用c++計算都等於零?比如4/8=
2樓:網友
因為c++中/運算是取整運算,4/8=,所以顯示0
3樓:
4/8 這都是int型,運算後返回結果也是int
你用 4/ 就行了,或者強制型別轉換一下。
float)4/8
4樓:網友
你定義的型別是整型吧?
整形會丟掉小數點後面的數字。
建議換成float或double試試。
5樓:我不是桃根仙
整數自動去掉小數部分。
用c++生成隨機數 為什麼每次結果都一樣 如何控制結果在0~1000之內
6樓:風若遠去何人留
1 c++的隨機數函式rand是乙個偽隨機數,從固定的初始種子計算得出。所以每次執行獲取到的隨機數序列是相同的。要解決這一問題,需要設定乙個隨機數種子,一般用當前時間作為種子。
**為srand(time(null));
2 要控制隨機數的範圍,可以使用模除操作,即%運算。
要控制結果在0~1000之間,可以使用**rand()%1001
具體**如下:
#include
#include
#include
int main()
srand(time(null));
int a = rand()%1001;
cout <
怎樣用c++編寫隨機數?
7樓:網友
c++中生成指定範圍內的隨機數過程為:
設定隨機種子srand()
生成隨機數rand()%n+1, 生成1-n之間的隨機數#include
#include //rand() srand()#include
void main()
8樓:網友
在c/c++中普通的隨機數用randomize()與rnd()就好,產生。
的數在0到1之間。如果要1到10的可以。
randomize();//產生隨機數種子之類的,反正是//用了這句才能真正隨機,不然的話,每次程式//執行結果都會同樣的,不用這句也行,可以用//srand( (unsigned)time( null )
前提是在程式前面得加句#include//用系統時間(這個肯定不同的啦)來初始化隨機//數種子吧,大概意思是,我也不太明白。
int x=rand()*10;
9樓:藍色**
獲得隨機數,可以這麼定義。
int a=rand%100;
那麼a就是100以內的任意乙個數字;話雖如此,但是你會發現實際上每次執行程式,a都是固定的,不會改變,這個根本就不能算是真正的隨機。
那麼你只需要加上標頭檔案 #include
然後再定義a之前加上種子函式,srand(time(0));//這個就叫做種子,這樣,你每次執行,a的值都是變化的。
c++中怎麼設定隨機變數,就是在幾個數中隨機產生乙個數。每次執行時都是隨機的不同的。
10樓:網友
關鍵點:使用隨機種子函式srand(time(0))
c++中生成隨機數時的種子問題
11樓:上上西
先糾正一下錯誤,是srand((unsigned int)time(0));srand的形參是unsigned int型別的;這句話只要寫一次,一般情況下只能寫一次;
隨機數是隨機的數,但計算機不可能產生隨機數,計算機根據你的輸入,再跟乙個演算法就產生乙個特定的序列。
只要你給計算機乙個相同的數,計算機返回的就是乙個特定的數,所以這樣的數叫做偽隨機數。
而srand(unsigned int par);這就是原型,這就是你給計算機的數。計算機通過rand()返回乙個序列,假設是,只要給相同的引數, 這個序列是特定的。int a=rand();這時候a=2;所以可以得出只要每次給計算機不同的數也就是srand(unsigned int pra)也就是給pra是不同的值,我們就可以認為這個序列是隨機的。
要想給不同的值,最簡單的方法是把系統時間轉化成unsigned給計算機就可以了,因為每時每刻時間都是不同的。這裡要注意,時間是秒為單位,也就是說你如果srand((unsigned)time(null));只是在每一秒內取隨rand()的話,因為時間還沒來得及變,它還不是完全隨機的,在下一秒就會換取另一條序列,可以說是相對的隨機。這牽扯掉內部的東西,只要知道層面上的東西就夠了。
現在我來告訴你為什麼你得到了2組一樣的結果,因為計算機運算的速度是相當快的,你的2次srand()取值操作肯定是在一秒內之間發生的,第一次產生隨機數後,你又寫了一遍srand((unsigned)time(null));相當於根據時間又埋下了種子,而這次埋下的種子和上一次的種子是完全相同的,所以產生的序列也相同,於是計算機又按順序從頭開始把這條序列中的值取出來,產生了上述結果;
總結,在程式中只要寫一次srand((unsigned)time(null));
12樓:匿名使用者
srand(time(null));
只需要在main()函式中呼叫一次,如果每次取隨機數之前都呼叫srand()函式,那麼返回的隨機數順序是一樣的。
13樓:cpp門徒
// 其實一次兩次都是可以的。
你這個程式兩次都一樣,因為兩次srand()的時間太接近了,計算機速度這麼快,你兩次srand()的時間壓根就一樣,得到結果是一樣的。
如果你在中間sleep(1000)一下,結果自然就不一樣了。
給個例子你執行下。
#include
#include
#include
using namespace std;
int main()
sleep(1000); // 只在這裡+了這行,就可以實現不一樣了。
srand(time(0));
for(int ii=0;ii<10;ii++)return 0;
一次就可以了,系統會幫你自動選時間的。
有問題再hi我。
c語言程式設計如何產生乙個0-20的隨機偶整數
14樓:育知同創教育
c語言程式設計產生乙個0-20的隨機偶整數示例:
#include
#include
#include
#define num 20 /*生成多少個這樣的數*/int main(void)
15樓:網友
srand取隨機種子,rand取隨機數,然後判斷一下是否為整數,不是整數就繼續rand
c++生成隨機數,要求在1-10之間,並且每次生成的值都不一樣,該如何解決,請詳細!
16樓:網友
樓上中間部分改一下應該就ok了。
比較懶,直接借用樓上的了,別介意哈(純手打,寫錯了自行調整一下int j; // 用來檢查重複。
static int a[0]=;
cout<<"這是乙個隨機生成10個數字的程式,生成的數在1到10之間。" 17樓:匿名使用者 生成時比較下,重複的刪掉就好了唄。 如何用c++產生隨機數? 18樓:在煙幹辰 rand()這個函式就是產生隨機數的,想要乙個範圍的隨機數,可以用取餘數的方式。 如取0~99之間的數,可以rand()%100 19樓:匿名使用者 //需要使用rand()和srand()函式//rand()為隨機數函式, 產生[0,int型最大值)之間的整數數//srand(seed);//為初始化隨機數種子函式//具體例子如下#include//標準(std)輸入輸出(io)庫, 內含printf()函式。 #include//標準(std)操作庫(lib), 內含srand(),rand()函式。 #include//時間庫(time), 內含time()系統時間函式int getrand()//產生隨機數的函式。 int main() //主函式。 希望對你有幫助。 20樓:楠公小白 正在開發審定中的 c++ 新版標準包括乙個隨機數生成器庫,可以生成好幾種常用隨機分佈型別的隨機數。 不過傳統的隨機數函式還是標準 c 庫中的 rand()。 設定隨機數發生公式的種子值。 srand( (unsigned)time( null ) 獲得隨機數。 int i = rand() 4 + 1; 那你就等到第四年年底吧,每月只花一千 存四千,五年之記憶體59個月,加上利息大約有二十 六 七萬,十萬以內買輛車,其餘的買房做首付。怎麼樣能實現一年內買車,兩年內買房?其他的方法我沒有,如果你搞投資的話,我們一起可以幫助你。只要你有達到夢想的一半資金,3個月之內就可以完成,如果是30 的資金,就要一... 注意題目的型別,如資訊題,判斷推理題,綜合題等。要注意踩點,找到每一道題的資訊源就找到了一半的答案。要集中精力研判資訊句,避免注意力分散。在英語試卷上,一定會有大量的生詞,並不是所有生詞都會被標上註釋,有的是舊詞新意,有的是根據字首字尾可以猜測出來的,有的不需要解釋,如地名 人名 物質或疾病的名稱,... 你好,廣東對於學位外語成績沒有過多的限制,學位英語的有效期同一般課程成績一樣,長期有效。但是學位外語的成績必須是自考在讀期間 也就是取得考籍到申請學位之前 取得的合格成績。對,廣東申請學位是要在畢業一年之內申請。你可以根據你自己的情況選擇先畢業,然後考學位英語然後再申請學位 適合於急著畢業並且對自己...如何一年之內買車買房,怎麼樣能實現一年內買車,兩年內買房?
如何在一年內全面提升自己的英語水平
自考本科畢業後一年內是不是任意時間點都可以申報學位證書?還是說一年內只有固定時間能申報學位證書