2016-03-25 7 views
-1

Ich versuche ein 2D-Array zu erstellen, indem ich eine Variable im Parameter der Funktion übergebe. Kannst du bitte meinen Code auf Fehler überprüfen, danke.2D-Array ausdrucken

#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

scheint in Ordnung. Funktioniert es? Sie können den Anruf vereinfachen, indem Sie print (board) im main schreiben. – ravenspoint

+0

Es funktioniert nicht. Ich kann keinen Grund finden, warum es nicht funktioniert. – user5771881

+0

Diese Frage wäre besser geeignet, um bei Code Review veröffentlicht zu werden, da sie nicht für Stackoverflow geeignet ist, ohne eine Beschreibung des aufgetretenen Fehlers –

Antwort

1

Sie sind nicht j in der inneren Schleife zu initialisieren, so dass es für nur i=0, nach diesen j laufen wird 3, wie Sie es in der Schleife nicht initialisiert werden dann Bedingung j < 3 wird falsch für weitere Werte immer von i, so innere Schleife wird nie wieder ausgeführt werden.

Und wenn Sie neue Zeile nach jeder Zeile drucken möchten, dann sollte Ihre printf("\n"); Anweisung innerhalb der ersten for-Schleife (siehe den Code) sein.

Code wie folgt ändern:

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