0

私は数ヶ月前にコンピュータサイエンスの勉強を始めたので、この質問は少しばかげているかもしれませんが、誰かが私を助けてくれたら幸いです。そこで、先生からBejeweledというゲームのバージョンを作成するように依頼されました。これまでは問題なかったと思いますが、次のエラーメッセージが表示されるという問題が発生し始めました。 [リンカーエラー]`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にもう1つの閉じ中括弧がないようです

于 2013-01-27T20:27:08.363 に答える
2

関数print_matrixにエラーがあるようです。3つの角かっこを開きますが、そのうちの2つだけを閉じます。

于 2013-01-27T20:29:13.527 に答える