int die[5] = { 0 };
int roll_die(void)
{
return rand(1, 6) % 6 + 1;
}
for (index = 0; index < 5; (++index) && (i++))
{
roll_die(die, 5); //tried as &die as well, but same problem
printf("die[%d]: %d\n\n", i, die[index]);
}
print die [1] - die [5]将0值而不是1到6之间随机生成的整数
答案 0 :(得分:2)
var simulation = d3.forceSimulation()
.force("link", d3.forceLink().id(function(d) { return d.id; }))
.force("charge", d3.forceManyBody())
.force("center", d3.forceCenter(width / 2, height / 2));
你使用#include <stdio.h>
int roll_die()
{
return rand() % 6 + 1;
}
int main() {
int die[5] = { 0 }, index;
for (index = 0; index < 5; (++index))
{
die[index] = roll_die();
printf("die[%d]: %d\n\n",index, die[index]);
}
return 0;
}
错误,没有使用返回的值,你调用函数的方式是错误的。
P.S。
它也更好地打电话
rand
一次开始
答案 1 :(得分:0)
使用JShell滚动骰子(Java) https://www.youtube.com/watch?v=a2CIxn0C1qo
答案 2 :(得分:0)
您正在调用不带参数的参数(void)的函数。
我在这里谈论这一行:roll_die(die, 5);
你声明和定义函数roll_die的方式是它只返回一个随机数int roll_die(void)
无论这个函数返回什么值,都必须分配给@ t.elazari提到的某些人:
die[index] = roll_die();
在这里,您要说索引die
(index
)中数组die[index]
的值将等于roll_die()
返回的任何内容。
按照他的例子,我只是简单地解释你为什么做错了。
他提到的函数(srand(time(NULL));
)进入main函数内部,只要它在for
循环之前。此函数将seed
的{{1}}更改为当前时间。如果你不这样做,你的rand
函数将始终返回相同的值,它们是随机的,但它们的种子总是相同的。
答案 3 :(得分:-1)
您是否尝试将roll_die(die, 5);
替换为die[index] = roll_die(die, 5);
?