随机数生成2组

时间:2015-05-31 09:01:31

标签: c decimal-point

我已经制作了一个代码来生成随机数,在两个类似坐标的集合中,如(1.00,4.00),(3.00,6.00),但我希望结果为十进制,如(1.45,4.87),(3.56,6.45)一些十进制后的数字我的代码在十进制后只显示零。

我的代码是

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

int main () {
    srand(time(NULL));
    int a[100][2],i,j;
    for (i=0; i<100; i++) {
        for (j=0; j<2; j++) {
            a[i][j]= rand()%11;
        }
    }
    for (i=0; i<100; i++) {
        printf("(");
        for (j=0; j<2; j++) {
            printf("%d",a[i][j]);
            if(j==0)
                printf(",");
        }
        printf(") ");
    }
    scanf("%d");
    return 0;
}

1 个答案:

答案 0 :(得分:3)

使用double代替int

// int a[100][2],i,j;
double a[100][2];
int i, j;

还要编写一个函数来生成浮点随机数,而不是整数随机数

// generate numbers in the interval [0, 1[
double randd_opened(void) {
    return rand() / (RAND_MAX + 1.0);
}

// generate numbers in the interval [0, 1]
double randd_closed(void) {
    return rand() / (double)RAND_MAX;
}

注意:将[0, 1]区间中的随机数乘以x会得到区间[0, x]中的随机数。