函数调用不起作用

时间:2012-10-15 00:15:38

标签: c++

我正在制作一个基本连接五个游戏,尽管我不愿承认它我在调用我的功能时遇到了问题。我不确定我是否错过了函数调用中的任何必需信息,但是没有在main中调用它们并且只运行它们程序如下所示,但是当我删除注释掉的行时,输出就是“按任意键继续“没有任何提示。对于这个问题的道歉,但我一直在阅读教科书和网络,据我所知他们应该工作。任何帮助将非常感激。

  #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);

    }
}

2 个答案:

答案 0 :(得分:4)

此:

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

应改为:

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

   ...
   return 0;
}

调用函数时不需要包含返回类型。实际上,这样做会告诉编译器您正在声明一个函数。

答案 1 :(得分:2)

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

main()函数中的这两行只是声明了两个函数。也就是说,你告诉编译器“存在一个名为get_coordinates的函数。它没有参数,也没有返回”。调用函数如下所示:

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