[问题] 简单程式,但执行速度不快

楼主: 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