如何使用typedef结构创建一个随机数矩阵?

时间:2014-10-15 13:36:08

标签: c

我试图编写一个函数来创建一个随机分布的1和0的矩阵,但我得到一个错误:数字常量之前的预期标识符。 有人可以给我一些关于我做错事的指示。

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

#define ROWS 7
#define COLUMNS 7

typedef struct {
const int rows;
const int columns;
int board[ROWS][COLUMNS];
} game;

void newGame(game *session);

int main(void){

game session = {ROWS, COLUMNS};

 srand(time(NULL));

return 0;
}

/* Function:    newGame
 * Description: Set up a new game with random states for each brick.
 * Input:       A pointer to the game structure.
 * Output:      The game structure pointed to is updated.
 */
void newGame(game *session){

for(int r = 0; r<ROWS; r++){
    for(int c = 0; c<COLUMNS; c++){
        session[r].ROWS = rand()%2;
        session[c].COLUMNS = rand()%2;
    }
  }
 }

1 个答案:

答案 0 :(得分:2)

此:

session[r].ROWS = rand()%2;

没有任何意义,session是指向单个game的指针,而不是数组,而ROWS#define,将被替换为这里是整数。

你可能意味着:

session->board[r][c] = rand() % 2;

此外,您正在处理相当混乱的大小,它既是常量也是运行时可读。我不确定这对我来说是否完全合理,但也许它出于某种原因很方便。