我试图编写一个函数来创建一个随机分布的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;
}
}
}
答案 0 :(得分:2)
此:
session[r].ROWS = rand()%2;
没有任何意义,session
是指向单个game
的指针,而不是数组,而ROWS
是#define
,将被替换为这里是整数。
你可能意味着:
session->board[r][c] = rand() % 2;
此外,您正在处理相当混乱的大小,它既是常量也是运行时可读。我不确定这对我来说是否完全合理,但也许它出于某种原因很方便。