0

几个月前我开始学习计算机科学,所以这个问题可能有点愚蠢,但如果有人可以帮助我,我将不胜感激。所以我的老师要求我们制作一个名为 Bejeweled 的游戏版本,我认为到目前为止我做得还不错,但我开始遇到这个问题,我收到以下错误消息: [Linker error] undefined reference to `change_position'. 出于某种原因,函数 change_position 不允许我的代码编译,我真的不明白为什么。在下面的代码中,该函数在主函数上有一个“//”,它工作正常,但没有 // 它会收到该消息。谁能解释我如何使它工作?如果有人解释为什么它也不起作用,那就更好了。非常感谢,对任何英语错误深表歉意。非常感谢,我纠正了我所犯的错误,现在它可以正常工作了。你们真棒。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void create_matrix (int matriz[8][8], int i, int j)
{
srand (time (NULL));
for (i=0;i<8;i++)
{
for (j=0;j<8;j++)
{
matriz[i][j]=rand()%7+1;
}
}
}
//___________________________________________________
void check_matrix(int matriz[8][8], int i, int j)
{
     for (i=0;i<8;i++)
         {
             for (j=0;j<8;j++)
           {    
               while (matriz[i][j] == matriz[i+1][j] && matriz[i+1][j] == matriz [i+2][j] || matriz [i][j] == matriz [i][j+1] && matriz [i][j+2])
               {
               matriz[i][j]=rand()%7+1;
               }
           }
     }
}
//___________________________________________________
void print_matrix (int matriz[8][8], int i, int j)
{
for (i = 0; i < 8 ; i++)
{
for (j=0;j<8;j++)
{
printf("%d ", matriz[i][j]);
}
printf ("\n");
}
}
//___________________________________________________
void change_position(int matriz[8][8], int i, int j)
{
printf ("Select the line. ");
scanf ("%d", &i);
printf ("Select the column. ");
scanf ("%d", &j);
}
//___________________________________________________
int main()
{
int matriz[8][8], i=0, j=0;
create_matrix (matriz, i, j);
check_matrix (matriz, i, j);
print_matrix (matriz, i, j);
change_position (matriz, i, j);
printf ("\n");
system ("pause");
return 0;
}
4

2 回答 2

4

看起来 change_position 正上方的 print_matrix 缺少一个右括号

于 2013-01-27T20:27:08.363 回答
2

函数print_matrix似乎有一个错误:你打开了三个括号,但你只关闭了其中的两个。

于 2013-01-27T20:29:13.527 回答