2016-12-10 7 views
-1

私は15のゲームを作っているので、端末上のボードをプリントアウトする描画機能を実装しています。 My機能は、次のようになります:整数の代わりにアンダースコアを出力する

void draw(void) 
{ 
    for(int i=0;i<d;i++) 
    { 
     for(int j=0;j<d;j++) 
     { 
      if (board[i][j] != 0) 
      { 
       printf("%2d ", board[i][j]); 
      } 
      else 
      { 
       printf(" _ "); 
      } 
     } 
    printf("\n"); 
    } 
} 

3X3件までが、それは、次のプリントアウト4X4のボード用ボードの罰金を働いてその:2行目の2列目の

output

それ1を印刷しますが、10を印刷すると予想します。

+1

なぜ関数にパラメータを渡していませんか?グローバル変数を使うことは、最初から避けるために学ぶべきことです。経験の浅いほど、危険なグローバル変数がありますが、プログラマーはそれほど専門家ではありません。 –

+2

実際には、あなたのコードが出力するものではありません。](http://ideone.com/nVOJCP)問題のある正確なコードを提供し、その出力に何が問題なのかを明確に記述してください。 –

+1

あなたは実際に質問を述べません。 – jftuga

答えて

1

セル番号の最大長を調べて、printfをフォーマットします。

char numstr[20]; 
int maxlen = sprintf(numstr, "%d", d * d - 1); 
... 
printf("%*d ", maxlen, board[i][j]); 
... 
printf("%*c ", maxlen, '_'); 
関連する問題