编译C,函数错误?

时间:2013-01-27 20:23:53

标签: c function matrix compilation

几个月前我开始学习计算机科学,所以这个问题可能有点愚蠢,但如果有人能帮助我,我会很感激。 所以我的老师要求我们制作一个名为Bejeweled的游戏版本,我认为我到目前为止确实没问题,但是我开始遇到这个问题,我收到以下错误信息: [链接器错误]未定义引用`change_position'< / strong>即可。由于某种原因,函数change_position不允许我的代码编译,我真的不明白为什么。在下面的代码中,函数在main函数上有一个“//”,它工作正常,但没有//它获取该消息。任何人都可以解释我如何使它工作?如果有人解释为什么它也不起作用会更好。非常感谢,抱歉任何英语错误。 非常感谢,我修正了我正在犯的错误,现在它正常工作。你们真棒。

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

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