【发布时间】:2019-04-14 01:23:49
【问题描述】:
我对@987654323@(以及一般编程)非常陌生,并且几乎不可能理解如何操作数组(我知道数组是什么)。
我正在尝试编写一个程序,在 范围 (1-50) 内生成 100 个随机整数,并将它们存储在数组元素 (1-10, 11 -20、21-30、31-40 和 41-50),并打印存储在每个元素中的随机生成整数的数量,即
- 1-10 = 20
- 11-20 = 30
- 21-30 = 21
- 31-40 = 19
- 41-50 = 20
到目前为止,我能想到的最好的是:
void randomNumbers
{
int count[ARRAY_LENGTH];
for (int i = 0; i < ARRAY_LENGTH; i++)
{
count[i] = 0;
}
for (int i = 0; i < ARRAY_LENGTH; i++)
{
count[i] = rand() % 50 + 1;
}
for (int i = 0; i <= ARRAY_LENGTH - 1; i++)
{
printf("Index %d -> %d\n", i, count[i]);
}
}
这只是说“元素 1 = 随机数,元素 2 = 随机数”等等。
我不明白如何:
- 将随机生成的整数存储在数组元素中
- 将随机生成的整数划分为对应的 元素
- 告诉程序打印每个生成的整数个数 元素范围
【问题讨论】:
-
你是说你有 5 个 bin,每个 bin 用于存储其范围内的数字吗?我在分组中看不到任何其他点。旁白:
i <= ARRAY_LENGTH - 1;比i < ARRAY_LENGTH;更惯用(且可读性更强) -
如果随机数
r在 [1,50] 范围内,然后您希望在r在范围内时使用产生0的表达式来减小该值1..10,当r在11..20 等范围内时产生2,然后(r - 1) / 10产生正确的结果。 (例如,r == 1; (r - 1) / 10 == 0;—r == 10; (r - 1) / 10 == 0;—r == 11; (r - 1) / 10 == 1;—r == 50; (r - 1) / 10 == 4;— 等等)
标签: c arrays element random-seed