2016-10-31 33 views
-1

如何在2d數組中選擇某個字符並在打印輸出時顯示它?選擇數組中的某個字符

例如:

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"); 
} 

x之一被選擇從屏幕的輸出將是此,在頂部和字符的底部的-指示字符被選定。

enter image description here

+5

你的代碼顯示了一個3x3的陣列全x'的':S(適合5x5的陣列的角落),您的圖片顯示了完全不同的東西。這很混亂。 – 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]處於位置[Line i*2, Col (j-1)*6+4]

讓我們說要「選擇」元素[i,j],您需要打印上的位置[Line (i*2)-1, Col (j-1)*6+4][Line (i*2)+1, 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個連字符以獲得更好的清晰度!

這只是給你一個想法。對於您的程序使用的特定格式,您可以輕鬆地在上述方法中更改一兩個值。

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

相關問題