2016-03-25 11 views
-1

私は関数のパラメータに変数を渡して2次元配列を作成しようとしています。あなたは、エラーのため、私のコードを見てくださいありがとう、ありがとう。2D配列の出力

あなたはループの中でそれを初期化していないように、その j3になった後、それが唯一の i=0、 のために実行されているので、条件 j < 3は常にさらなる値に対する なり、内側のループで jを初期化していない
#include <stdio.h> 
#include <stdlib.h> 

void print(char *board) 
{ 
    int i = 0, j = 0; 

    printf("Board :\n"); 
    for(i; i < 3 ;i++) 
    { 
     for(j; j < 3;j++) 
     { 
      board[i][j] = 'X'; 
      printf("%c", board[i][j]); 
     } 
    } 
    printf("\n"); 
} 


int main() 
{ 
    char board[3][3]; 
    print(&board[0][0]); 
    return 0; 
} 
+0

は罰金です。それは動作しますか?メインにプリント(ボード)を書くことで、通話を簡素化できます。 – ravenspoint

+0

動作しません。私はそれがうまくいかない理由を見つけることができません。 – user5771881

+0

この質問は、発生しているエラーの説明なしで、Stackoverflowには適していないため、コードレビューで投稿する方が適しています –

答えて

1

iのため、内部ループは決して再び実行されません。

そして、あなたはすべての行の後に新しい行を印刷したい場合は、あなたのprintf("\n");の文は、ループの最初の内にある必要があります(コードを参照してください)。

は、このようにコードを変更し

#include <stdio.h> 
#include <stdlib.h> 

void print(char board[][3]) 
{ 
    int i,j; 

    printf("Board :\n"); 
    for(i=0; i < 3 ;i++) 
    { 
     for(j=0; j < 3;j++) // initialize j to 0 
     { 
      board[i][j] = 'X'; 
      printf("%c", board[i][j]); 
     } 
     printf("\n"); //new line after each row 
    } 

} 


int main() 
{ 
    char board[3][3]; 
    print(board); 
    return 0; 
}