[問題] 簡單程式,但執行速度不快

作者: FirstAnd15th (你做初一我做十五)   2014-08-13 19:51:03
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC in Linux
問題(Question):
利用亂數跑模擬骰子的程式,簡單來說就是擲骰子,每按ENTER就出現一個點數值
但我連按ENTER,資料會卡卡的,像是計算速度不夠快
預期的正確結果(Expected Output):
dice number is : 2
dice number is : 1
dice number is : 4
dice number is : 3
dice number is : 5
dice number is : 1
dice number is : 3
希望跑出來就是這樣的結果
錯誤結果(Wrong Output):
dice number is : 3
dice number is : 3
dice number is : 2
dice number is : 2
dice number is : 2
dice number is : 2
dice number is : 2
dice number is : 1
dice number is : 1
dice number is : 1
dice number is : 1
dice number is : 1
dice number is : 1
會出現連續一樣的結果好幾次(秒)後才會有新的結果
程式碼(Code):(請善用置底文網頁, 記得排版)
int result;
double r01, r17;
while (getchar() != EOF)
{
//random seed
srand( (unsigned) time (NULL) );
//[0, 1)
r01 = (double) ( rand() / (RAND_MAX + 1.0) );
//[1, 7) , like a dice
r17 = r01 * (7.0 - 1.0) + 1.0;
//output
result = (int) (r17);
printf("dice number is : %d", result);
}
補充說明(Supplement):
作者: fireslayer (fireslayer)   2014-08-13 19:53:00
srand(...)拿出While外面
作者: x000032001 (版廢了該走了)   2014-08-13 20:21:00
去弄清楚srand作用
作者: diabloevagto (wi)   2014-08-13 20:45:00
你問題不在於速度不夠快,問題是你給進 srand 的值
作者: sorryandbye (隨g致富)   2014-08-13 22:48:00
這我前幾天學到,終於可以在ptt派上用場Q_Qsrand()函式是根據()內的種子(seed)做數學運算你的種子(seed=time)相同,得到的數字當然一樣....
作者: putumaxally (putumaxally)   2014-08-13 23:00:00
教你rand跟srand的人真糟糕
作者: vecstar (星艦迷航)   2014-08-14 21:58:00
蠻多鄉民喜歡酸新手來顯示自己厲害,看多就習慣,勿介意
作者: sorryandbye (隨g致富)   2014-08-15 00:50:00
對不起Q_Q 我是超新手 樓上要鞭請鞭小力一點

Links booklink

Contact Us: admin [ a t ] ucptt.com