-2

そして、コードに問題は見つかりませんが、コンパイラーは私に文句を言い続けます。Error:33:19 expected ';' と表示されます または ',' または ')' を数値定数の前に置きます。
それは私を夢中にさせます。これは、それが指している行のスニペットです。太字です。あなたたちが私を助けることができれば。それは素晴らしいことです。ところで、私は人生のゲームを作ろうとしています。最後に中括弧が台無しになっていることは知っています。33 行目の何が問題なのか知りたいだけです。アスタリスクで囲まれた行です。void initGrid (int ROWS, int COLUMNS, int g[ROWS][COLUMNS])

int getUserInput();
void initGrid(int, int, int[ROWS][COLUMNS]);
void processGeneration(int, int, int[ROWS][COLUMNS]);
int countNeighbors(int, int, int[ROWS][COLUMNS], int, int);
void printtoGrid(int, int, int[ROWS][COLUMNS]);
void sleep(unsigned int);

int main()
{
return 0;
}
//*************
int getUserInput()
{
int g;
printf("Thanks for playing!\n");
printf("How many generations do you want to watch: ");
scanf("%d", &g);
return g;
}
//********************
 **void initGrid(int ROWS, int COLUMNS, int g[ROWS][COLUMNS])**
{

 int i, j, k;
 for(i = 0; i < ROWS; i++)
{
    for(j = 0; j < COLUMNS; j++)
  {
  /*
  [-1][-1][-1][-1][-1]
  [-1][  ][  ][  ][-1]
  [-1][  ][  ][  ][-1]
  [-1][-1][-1][-1][-1]

  */
    if(i == 0 || i == (ROWS - 1) || j == 0 || j == (COLUMNS - 1))
    g[i][j] = -1;

      else
     {
      k = rand() % 3;

      if(k == 0)
      {
        g[i][j] = 1;
        population++;
      }
      else g[i][j] = 0;

     }

} }

4

5 に答える 5

1

ROWS は、どこか (スコープ内) で定義されている定数のようです。

ROWS がヘッダーのどこかに定義されているかどうかわからない場合は、ROWS の代わりに別の変数名を試してみます。

例:

void initGrid(int rowCount, int COLUMNS, int g[ROWS][COLUMNS])
{

   int i, j, k;
   for(i = 0; i < rowCount; i++)
   {
      for(j = 0; j < COLUMNS; j++)
      {
       ...

ただし、それで問題が解決する可能性が高い場合。ROWS が定数である場合、COLUMNS も定数であると想定するため、COLUMNS を columnCount のようなものに変更すると役立ちます。

そして最後に、他の場所で述べたように、使用しようとするint g[ROWS][COLUMNS]ことも問題になります. 渡すint *gとうまくいきます。

最終結果は次のようになります

void initGrid(int rowCount, int columnCount, int *g)

ROWS と COLUMNS が定数の場合、関数プロトタイプでそれらを渡すことはできず、 for ループで使用するだけです。

void initGrid(int *g)
{

   int i, j, k;
   for(i = 0; i < ROWS; i++)
   {
      for(j = 0; j < COLUMNS; j++)
      { 
       ...

ただし、関数をより一般的なものにしたい場合は、その方向には行きません。

于 2013-05-03T17:44:52.240 に答える