我正在尝试编写一些代码,对生成的随机数(在 0 和 1 之间)进行排序,并将其排序到“bin”(即一个数组)中。然后窗口打印出每个容器中随机数的数量。希望这有道理,但我真的很挣扎。我是一个完全的初学者,我完全陷入困境,需要一些关于如何使代码工作以及下一步该做什么的帮助。这是我到目前为止所得到的。
#include <stdio.h>
#include <stdlib.h>
int main()
{
double x,y;
int i;
int data[i];
unsigned int time_ui;
time_ui = (unsigned int)( time(NULL) );
srand(time_ui);
x = rand()/ (double)RAND_MAX;
data[i]=0;
for (i=0; i<10; i++)
{
(x*10)=y;
if ((int)y == i)
{
data[i]+=1;
}
printf("Bin %d contains %d random numbers\n", i, data[i]);
}
return 0;
}
最佳答案
我想我明白你想要做什么,这就是我可以做的
#include <stdio.h>
#include <stdlib.h>
int main()
{
double x,y;
int i;
int data[10]; // you will generate 10 bins
unsigned int time_ui;
time_ui = (unsigned int)( time(NULL) );
srand(time_ui);
for (i =0; i<10; i++) // initialize each bin
{
data[i] = 0;
}
for (i=0; i<100; i++) // generate and examine 100 random you can do it for more
{
x = rand()/(double)RAND_MAX; // generate random number
y = 10 *x; // predict in which bin it will be
data[(int)y]++; // increase that bin by 1
}
for (i =0; i<10; i++) // once done, let's print it out
{
printf("Bin %d contains %d random numbers\n", i, data[i]);
}
return 0;
}
编辑
并不是很重要,只是为了好玩,你可以打印出这样的结果:
for (i =0; i<10; i++) // once done, let's print it out
{
printf("\t");
for(j = 0; j<data[i]; j++)
{
printf("_ ");
}
printf("\nBin %d\t", i);
for(j = 0; j<data[i]; j++)
{
printf("_|");
}
printf("%d\n", data[i]);
}
不要忘记定义int j;
关于c - 将随机数排序到容器中 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24641951/