2016-10-31 15 views
-1

2次元配列で特定の文字を選択し、出力を印刷するときにどのように表示できますか?例えば配列内の特定の文字を選択する

xの一つが選択されると

int x,y; 
char box[4][4]; 

for(x=0;x<2;x++) 
{ 
    for(y=0;y<2;y++) 
    { 
     box[x][y]='x'; 
     printf("%c",box[x][y]); 
    } 

    printf("\n"); 
} 

画面からの出力が文字の上下に、この、-なり、文字が選択されていることを示します。

enter image description here

+5

あなたのコードでは、X ' 'の完全な3×3アレイを示しています。■(5×5の配列のコーナーに収まる)、あなたのイメージは完全に異なる何かを示しています。これは混乱しています。 – unwind

+0

@unwind私は上記のコードの例を挙げています。 –

答えて

0

文字を選択することによって、あなたが文字の上および下にハイフン(-)を印刷平均場合は、配列の各要素のためのハイフン位置のためのいくつかの数式を計算しなければなりません。

例:今すぐ

Line 1: 
Line 2: | x | | x | | x | 
Line 3: 
Line 4: | x | | x | | x | 
Line 5: 
Line 6: | x | | x | | x | 
Line 7: 

、あなたが気づくことができるように、そこに各ボックスの前に空白があると、空白行がハイフンのための各ボックスの間に挿入されています。

各要素[i,j]は、私たちは、あなたが要素[i,j]を「選択」したい、あなたが位置[Line (i*2)-1, Col (j-1)*6+4][Line (i*2)+1, Col (j-1)*6+4]にハイフンを印刷する必要があるとしましょう位置に[Line i*2, Col (j-1)*6+4]

です。 [2,3]を選択するには

は、位置[3,16][5,16]にハイフンを入れて:

Line 1: 
Line 2: | x | | x | | x | 
Line 3:    - 
Line 4: | x | | x | | x | 
Line 5:    - 
Line 6: | x | | x | | x | 
Line 7: 

をあなたがijの代わりにさまざまな値を入れて、それがうまくいくかを見ることができます。

特定の位置に移動するには、改行と空白の組み合わせを使用できます。あなたは3つのハイフンを印刷して、より明確にすることさえできます!

これはちょっとしたアイデアです。プログラムで使用されている特定の書式については、上記の方法で1つまたは2つの値を簡単に変更できます。

0

あなたはこのような何かを試すことができます。

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

#define ROWS 9 
#define COLS 9 

int 
main(void) { 
    int x, y, row, column; 
    char box[ROWS][COLS]; 

    printf("Enter row of box(1-4): "); 
    if (scanf("%d", &row) != 1) { 
     printf("Invalid input\n"); 
     exit(EXIT_FAILURE); 
    } 

    printf("Enter column of box(1-4): "); 
    if (scanf("%d", &column) != 1) { 
     printf("Invalid input\n"); 
     exit(EXIT_FAILURE); 
    } 

    for (x = 0; x < ROWS; x++) { 
     for (y = 0; y<COLS; y++) { 
      if (x % 2 == 0) { 
       box[x][y] = ' '; 
      } else { 
       box[x][y] = 'x'; 
      } 
     } 
    } 

    for (x = 1; x < ROWS; x+=2) { 
     for (y = 0; y < COLS; y++) { 
      if (x == (2*row-1) && y == column - 1) { 
       box[x-1][y] = '-'; 
       box[x+1][y] = '-'; 
      } 
     } 
    } 


    for (x = 0; x < ROWS; x++) { 
     for (y = 0; y < COLS; y++) { 
      if (x % 2 == 0) { 
       printf(" %c ", box[x][y]); 
      } else { 
       printf("|%c|", box[x][y]); 
      } 
     } 
     printf("\n"); 
    } 

    return 0; 
} 
+0

@ W.Lはこの助けをしましたか? – RoadRunner

関連する問題