2016-03-25 20 views
-1

İşlev parametresinde bir değişken geçirerek 2d dizisi oluşturmaya çalışıyorum. Herhangi bir hata için koduma bakabilir misiniz, teşekkürler.2B dizisini yazdırma

#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

ince görünüyor. Çalışıyor mu? Ana ekranda baskı (kart) yazarak aramayı basitleştirebilirsiniz. – ravenspoint

+0

Çalışmıyor. İşe yaramayacak bir sebep bulamıyorum. – user5771881

+0

Bu soru, Code Review'da yayınlanmak için daha uygun olurdu, çünkü Stackoverflow için uygun değil, yaşadığınız hatanın açıklaması olmadan –

cevap

1
sonra durum j < 3 daima daha ileri değerleri için yanlış olacak döngü içinde başlatılıyor değildir gibi bu j sonra sadece i=0, için çalışıyor böylece iç döngüde j başlatılıyor değildir

3 olur i, böylece iç döngü bir daha asla yürütmeyecek.

Her satırdan sonra yeni satır yazdırmak istiyorsanız, printf("\n"); ifadenizin ilk döngü içinde olması gerekir (Bkz. Kod).

böyle kodunuzu değiştirin

:

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