从0到1的随机数计算平均值

时间:2017-11-23 01:54:31

标签: c random average

我终于得到了代码,它给了我从0到1的随机浮点数。 我的代码如下所示:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{
srand((int)time(NULL));

int N=10;

float a = 1.0;
for (int i=0;i<N;i++)
    printf("%f\n", ((float)rand()/(float)(RAND_MAX)) * a);

return 0;
}

现在,我需要制作一个程序,它会给出10&lt; = N&lt; = 10000的给定数字的平均值,但我想出了如何让它工作的想法。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在打印之前,请存储它们并进行总结。

int main()
{
srand((int)time(NULL));

int N=10;

float a = 1.0f, r, sum = 0.0f;
for (int i=0;i<N;i++){
    r = ((float)rand()/(float)(RAND_MAX)) * a;
    printf("%f\n", r);
    sum += f;
}
printf("sum = %f\n", sum / N);

return 0;
}

答案 1 :(得分:0)

使用&#39; a&#39;变量作为临时存储和浮点数的总和。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{
srand((int)time(NULL));

int lowerLimit = 10 + 1, upperLimit = 10000;
//generates random number between 10 and 10000, if needed
int N =  lowerLimit + rand() % (upperLimit - lowerLimit);

/* 'a' variable was not needed in previous*/
float a, sum = 0.0;
for (int i=0;i<N;i++){
    a = ((float)rand()/(float)(RAND_MAX));
    sum += a;
    printf("Float %i = %f\n", i,a);
}
printf("Average = %f\n", sum/N);

return 0;
}