我已经制作了一个代码来生成随机数,在两个类似坐标的集合中,如(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;
}
答案 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]
中的随机数。