首页 > 解决方案 > 在c编程中生成随机数的算术级数

问题描述

这是我现在的代码:

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

int main()
{ 
    float r;

    srand((unsigned)time(NULL));

    r = (float)rand()/RAND_MAX*20;
    printf("%.1f\n",r);


   return(0);
}

该代码可以生成一个从 0 -20 的十进制随机数,但我想生成一个像 0.5,1.0,1.5,2.0,2.5...19.5,20.0 这样的数字。

我应该在我的程序中添加什么?

标签: c

解决方案


我会将随机数保留为int1 到 40 之间的随机数。然后除以 2.0 得到你想要的数字。

就像是:

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

int main()
{ 
    float r;
    int n;

    srand((unsigned)time(NULL));

    for (int i=0; i<10; ++i)
    {
        n = rand() % 40 + 1;  // Gives random values 1, 2, …, 39, 40
        r = n/2.0;            // Divide by floating point 2 to get 0.5, 1.0, .. 20.0
        printf("%.1f\n",r);
    }

   return(0);
}

那应该给你值 0.5, 1.0, 1.5, ...., 19.5, 20.0

样本输出:

14.0
0.5
11.0
4.5
15.0
8.0
19.5
18.0
19.0
6.0

推荐阅读