尝试使用数组返回随机整数

时间:2017-03-05 00:49:22

标签: c

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之间随机生成的整数

4 个答案:

答案 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();

在这里,您要说索引dieindex)中数组die[index]的值将等于roll_die()返回的任何内容。

按照他的例子,我只是简单地解释你为什么做错了。

他提到的函数(srand(time(NULL));)进入main函数内部,只要它在for循环之前。此函数将seed的{​​{1}}更改为当前时间。如果你不这样做,你的rand函数将始终返回相同的值,它们是随机的,但它们的种子总是相同的。

答案 3 :(得分:-1)

您是否尝试将roll_die(die, 5);替换为die[index] = roll_die(die, 5);