如何在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
之一被選擇從屏幕的輸出將是此,在頂部和字符的底部的-
指示字符被選定。
如何在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
之一被選擇從屏幕的輸出將是此,在頂部和字符的底部的-
指示字符被選定。
如果通過選擇一個字符,你的意思是打印的上方和下方的字符連字符(-
),則必須計算一些式爲陣列的每個元件連字符的位置。
例子:
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:
你可以把各種值代替i
和j
,看看它是如何工作的。
要轉到特定位置,可以使用換行符和空格的組合。您甚至可以打印3個連字符以獲得更好的清晰度!
這只是給你一個想法。對於您的程序使用的特定格式,您可以輕鬆地在上述方法中更改一兩個值。
你可以嘗試這樣的事情:
#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;
}
@ W.L是否有幫助? – RoadRunner
你的代碼顯示了一個3x3的陣列全x'的':S(適合5x5的陣列的角落),您的圖片顯示了完全不同的東西。這很混亂。 – unwind
@unwind我只是舉了一個上面的代碼的例子。 –