2016-10-24 3 views
-4

Я новичок в программировании. Выяснив, как я могу распечатать окно с использованием цикла for, чтобы он сделал большую коробку? Я приложил образец ниже. Мне действительно нужна помощь.Печать 2d ящик массива

#include <stdio.h> 

int main() 
{  
int a; 

printf("\n --- \n"); 
for(a=1;a<=1;++a) 
printf("\n| |\n"); 
printf("\n --- "); 

return 0; 
} 

Пример вывода:

Example output

+0

В чем проблема с кодом, который вы нам показываете? Каков фактический результат этой программы? Какой результат вы ожидали? Также, пожалуйста, [прочитайте о том, как задавать хорошие вопросы] (http://stackoverflow.com/help/how-to-ask). –

+0

Похож на домашнюю работу. Вам нужно показать, какие усилия вы сделали, и более подробно описать свой вопрос. –

+0

@ some programmer dude извините за неточность, то, что я хочу, это распечатать 2-мерную ячейку массива с '---' сверху и '|' на стороне. – CodeX

ответ

0

Нечто подобное могло работать. Для этого нужно базовое понимание вложенных циклов.

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

int 
main(int argc, char const *argv[]) { 
    int rows, cols, i, j; 

    printf("Enter rows for box: "); 
    if (scanf("%d", &rows) != 1) { 
     printf("Invalid rows\n"); 
     exit(EXIT_FAILURE); 
    } 

    printf("Enter columns for box: "); 
    if (scanf("%d", &cols) != 1) { 
     printf("Invalid columns\n"); 
     exit(EXIT_FAILURE); 
    } 

    printf("\n2D Array Box:\n"); 
    for (i = 1; i <= rows; i++) { 
     for (j = 1; j <= cols; j++) { 
      printf(" --- "); 
     } 
     printf("\n"); 
     for (j = 1; j <= cols; j++) { 
      printf("| |"); 
     } 
     printf("\n"); 
    } 

    /* bottom "---" row */ 
    for (i = 1; i <= cols; i++) { 
     printf(" --- "); 
    } 

    return 0; 
} 
0

первый символ (' ') и повтор строки ("--- ")
первой линии и повторить содержимое строки и бар линии.

#include <stdio.h> 

#define MARK "X O" 

//reduce code  
#define DRAW_H_BAR()\ 
    do {\ 
     putchar(' ');\ 
     for(int i = 0; i < cols; ++i)\ 
      printf("%s ", h_bar);\ 
     puts("");\ 
    }while(0) 

void printBoard(int rows, int cols, int board[rows][cols]){ 
    const char *h_bar = "---"; 
    const char v_bar = '|'; 

    DRAW_H_BAR();//first line 
    for(int j = 0; j < rows; ++j){ 
     //contents line 
     putchar(v_bar); 
     for(int i = 0; i < cols; ++i) 
      printf(" %c %c", MARK[board[j][i]+1],v_bar); 
     puts(""); 
     DRAW_H_BAR();//bar line 
    } 
} 

int main(void){ 
    int board[8][8] = { 
     {1,0,1,0,1,0,1,0}, 
     {0,1,0,1,0,1,0,1}, 
     {1,0,1,0,1,0,1,0}, 
     {0,0,0,0,0,0,0,0}, 
     {0,0,0,0,0,0,0,0}, 
     {0,-1,0,-1,0,-1,0,-1}, 
     {-1,0,-1,0,-1,0,-1,0}, 
     {0,-1,0,-1,0,-1,0,-1} 
    }; 
    int rows = sizeof(board)/sizeof(*board); 
    int cols = sizeof(*board)/sizeof(**board); 
    printBoard(rows, cols, board); 
} 
Смежные вопросы