請問一下,C語言中,再使用srand(time(NULL))後,要避免重複的數字再跑出來要用甚麼指令??
latest #57
照理說~用了srand之後應該就是會讓每次的數據都不太一樣了呀
int fair_deal()
{
return srand(time(NULL))%13+1;
}
你把srand(time(NULL))抓出來當獨立的一行
然後把你原本打srand(time(NULL))換成rand()
while(used[x]>=4)x=rand()%13+1;
因為我那天在寫的時候出了一點小狀況= =...,發現沒那麼好寫= =
srand 只是用來設定種子,並不會回傳亂數,你可以在程式的一開始執行一次 srand 即可,之後需要用亂數的時候呼叫 rand 產生亂數
#include <stdlib.h>
這個是甚麼意思呀??為什麼我放下去後就不能跑了><
妳要注意妳那樣亂數可能會出現亂數出超過4'張一樣的牌
carda = DEAL();
cardb = DEAL();
DEAL() 這個 function 裡改用 rand() 了嗎?
srand(time(NULL));
return rand()%13+1;
不可以再呼叫 srand 了,srand 只能在 main 中呼叫一次,否則同一秒內的亂數都會一樣
所以我要在main中打一次srand()然後在function裡面打rand()嗎??
耶~~OK了耶
back to top