尝试生成伪随机浮点数btwn 0和1.运行代码时出现此错误:
'RAND_MAX'未声明(首次使用此功能)
#include <stdio.h>
#include <time.h>
int main(test, numpoints, numtrials, dimension){
//generate a random number
srand(time(NULL));
float r = (float)(rand()/RAND_MAX +1);
printf("%.6f", r);
printf("\n");
}
答案 0 :(得分:2)
要在C中使用RAND_MAX
,您需要包含其标题:
#include <stdlib.h>
rand()/RAND_MAX
是一个整数除法,如果你想要浮动除法,你应该首先将其转换为float
,然后除以:(float)(rand()) / RAND_MAX
您需要将主要定义为:
int main ( int arc, char **argv )
答案 1 :(得分:1)
RAND_MAX
在stdlib
之内。你需要加入它。
#include <stdlib.h>
答案 2 :(得分:1)
(rand() / RAND_MAX)
是整数除法,等于零。然后添加1,然后转换为float,给你1.0。如果你想要浮动除法,你必须首先进行隐蔽,然后除以:(float)(rand()) / RAND_MAX
。 。
另外,您不包括stdlib
,而您对[{1}}的论据是错误的。
答案 3 :(得分:0)
尝试导入stdlib.h。这就是C ++所需要的,但我不完全确定C。