-3

私は基本的な接続 5 ゲームを作成していますが、関数の呼び出しに問題があることを認めたくありません。関数呼び出しで必要な情報が欠落しているかどうかはわかりませんが、メインでそれらを呼び出さずに実行するだけで、プログラムは次のように機能しますが、コメントアウトされた行を削除すると、出力は単なる行になります」続行するには何かキーを押してください」と表示されても何も表示されません。些細な質問で申し訳ありませんが、私はテキストブックとネットを読んでおり、私の知る限り、それらは機能するはずです。どんな助けでも大歓迎です。

  #include <stdio.h>
#define   NONE           0
#define   PLYR_TOKEN     1
#define   COMP_TOKEN     6

int board[9][9];
int x, y;

void main()


//{
//  void get_coodinates();
//  void print_matrix();
//}

//void print_matrix()
    {

    int i, j, k=9, z=10;

    printf("\n");

        for(j = 0; j < k; ++j)
            {
                printf("\n  %d", --z);
                for(i = 0; i < k; ++i)

                    printf(" %d", board[x][y]);
            }
        printf("\n  | 1 2 3 4 5 6 7 8 9 \n");


//  }

//void get_coordinates()
    {
        do{
            printf("\n");
            printf("\n");
            printf("Input a column number then row number e.g. (1 4)   ");
            (scanf("%d %d", &x, &y));
            if (x < 1 || y <1 || x > 9 || y > 9)
                printf("\nERROR: Values must be between 1-9\n\n");
        else 
            printf("\n %s %d, %d. \n",
          "The position you input was", x, y);
        } while (x < 1 || y <1 || x > 9 || y > 9);
        if (board[x - 1][y - 1] != 0)
            {
            printf("Position taken enter new position\n");
            }
        else (board[x -1][y -1] = PLYR_TOKEN);

    }
}
4

2 に答える 2

4

これ:

void main()
{
   void get_coodinates();
   void print_matrix();
}

これに変更する必要があります:

int main()
{
   get_coodinates();
   print_matrix();

   ...
   return 0;
}

関数を呼び出すときに戻り値の型を含める必要はありません。実際、そうすることで、関数を宣言していることをコンパイラに伝えます。

于 2012-10-15T00:18:42.187 に答える
2
void main()    
{
  void get_coodinates();
  void print_matrix();
}

関数内のこれらの 2 行は、main()単に 2 つの関数を宣言するだけです。つまり、コンパイラに「 という関数が存在しますget_coordinates。引数をとらず、何も返さない」と伝えます。関数の呼び出しは次のようになります。

void main()    
{
  get_coodinates();
  print_matrix();
}
于 2012-10-15T00:19:09.880 に答える