函数在数组中生成随机数

时间:2018-05-08 06:32:41

标签: c arrays random numbers

我正在尝试创建一个为数组创建随机数的函数。 这是我的代码。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#define ROW 22
#define COL 80


void display(int life[ROW][COL]){
    for(int i = 0; i<ROW; i++){
        for(int j=0; j<COL; j++){
            printf("%d",life[i][j]);
        }
        printf("\n");
    }
}
void initialize_board(int life[ROW][COL]){
    for(int i = 0; i< ROW;i++){
        for(int j = 0; j<COL ; j++){
            life[ROW][COL] = rand()%2;
        }
    }
}
int main() {
    srand(getpid());
    printf("PID: %d\n",getpid());
    int life[22][80] = {0};
    initialize_board(life);
    display(life);
    return 0;
}

但是我得到的输出是0而不是随机分配给0或1。

2 个答案:

答案 0 :(得分:5)

而不是

life[ROW][COL] = rand()%2;

使用

life[i][j] = rand()%2;

在那个循环中。

就目前而言,您将所有随机值写入到阵列末尾后面的相同(无效)内存地址。

答案 1 :(得分:0)

[ROW][COL]是最常见的,所以你总是在同一个(无效的,如Wintermute提到的)单元格中写作。所以你必须使用变量ij 亲切的问候