2017-12-09 3 views
0

안녕하세요 저는 프로그래밍 할 때 새로운데 그리드처럼 배열을 인쇄해야합니다 (dimensionnal 여야 함). 나는 지금 몇 시간 동안 노력했지만 여전히 원하는 결과를 얻지 못했습니다.그리드와 같은 배열을 인쇄하려면 어떻게해야합니까?

___________ 
|0 |1 |2 |3 | 
|4 |5 |6 |7 | 
|8 |9 |10|11| 
|12|13|14|15| 
––––––––––––– 

내 코드 :

#include <stdio.h> 

void display_grid(void) 
{ 
    int i; 
    int j; 
    int cell[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; 

    for (i = 0; i < 4; i++) 
    { 
     printf("|"); 
     for (j = 0; j < 16; j++) 
     { 
     printf("%d|",cell[j]); 
     } 
     printf("\n"); 
    } 
} 

int main() 
{ 
    display_grid(); 
    return 0; 
} 

표시이 : 눈금이 같은 것 때문에 배열 (16 개) 값이

|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15| 
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15| 
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15| 
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15| 
+0

@AditiRawat 내가 사과, 나는 보지 못했다 – NL628

답변

1

나는이 일 것이라는 느낌이 : 변경했습니다 cell[j]cell[4 * i + j]

#include <stdio.h> 

void display_grid(void) 
{ 
    int i; 
    int j; 
    int cell[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; 

    for (i = 0; i < 4; i++) 
    { 
     printf("|"); 
     for (j = 0; j < 4; j++) 
     { 
     printf("%d|",cell[4 * i + j]); 
     } 
     printf("\n"); 
    } 
} 

int main() 
{ 
    display_grid(); 
    return 0; 
} 

이 정보가 도움이 되나요?

0

나머지 연산자 %을 사용하여 새 줄에 인쇄 할시기를 결정할 수 있습니다. 다음은 배열로 int의 배열과 각 행의 원하는 크기를 인수로 취하는 display_grid() 함수의 예제 프로그램입니다. 배열을 원하는 수의 열로 고르게 나눌 수 있으면 0이 반환됩니다. 그렇지 않으면 0이 아닌 값이 리턴됩니다. 이렇게하면 다양한 격자 형식으로 1 차원 배열을 표시 할 수 있습니다. 배열을 균등하게 나눌 수없는 경우 아무 것도 인쇄되지 않습니다.

현재 최대 2 자리 숫자 (또는 1 자리 숫자 및 부호)가 포함 된 격자를 인쇄합니다. 디스플레이 너비가 입력에 필요한 최대 너비에 맞도록 더 많은 자릿수를 인쇄하거나 수정하기 위해 수정하는 것이 간단 할 것입니다.

#include <stdio.h> 

#define ARR_SZ 16 

int display_grid(int *arr, size_t arr_sz, size_t row_sz); 

int main(void) 
{ 
    int array[ARR_SZ]; 
    for (size_t i = 0; i < ARR_SZ; i++) { 
     array[i] = i; 
    } 

    size_t row_sz = 4; 
    if (display_grid(array, ARR_SZ, row_sz) != 0) { 
     fprintf(stderr, "Array size not evenly divisible by %zu\n", row_sz); 
    } 

    row_sz = 8; 
    if (display_grid(array, ARR_SZ, row_sz) != 0) { 
     fprintf(stderr, "Array size not evenly divisible by %zu\n", row_sz); 
    } 

    row_sz = 2; 
    if (display_grid(array, ARR_SZ, row_sz) != 0) { 
     fprintf(stderr, "Array size not evenly divisible by %zu\n", row_sz); 
    } 

    row_sz = 1; 
    if (display_grid(array, ARR_SZ, row_sz) != 0) { 
     fprintf(stderr, "Array size not evenly divisible by %zu\n", row_sz); 
    } 

    row_sz = 16; 
    if (display_grid(array, ARR_SZ, row_sz) != 0) { 
     fprintf(stderr, "Array size not evenly divisible by %zu\n", row_sz); 
    } 

    row_sz = 6; 
    if (display_grid(array, ARR_SZ, row_sz) != 0) { 
     fprintf(stderr, "Array size not evenly divisible by %zu\n", row_sz); 
    } 

    row_sz = 32; 
    if (display_grid(array, ARR_SZ, row_sz) != 0) { 
     fprintf(stderr, "Array size not evenly divisible by %zu\n", row_sz); 
    } 

    return 0; 
} 

int display_grid(int *arr, size_t arr_sz, size_t row_sz) 
{ 
    int ret_val = arr_sz % row_sz; 

    if (ret_val == 0) { 
     /* Print top border */ 
     putchar(' '); 
     for (size_t i = 1; i < 3 * row_sz; i++) { 
      putchar('_'); 
     } 
     putchar('\n'); 

     /* Print rows of grid */ 
     for (size_t i = 0; i < arr_sz; i++) { 
      printf("|%-2d", arr[i]); 
      if ((i + 1) % row_sz == 0) { 
       printf("|\n"); 
      } 
     } 

     /* Print bottom border */ 
     for (size_t i = 0; i < 3 * row_sz + 1; i++) { 
      putchar('-'); 
     } 
     putchar('\n'); 
    } 

    return ret_val; 
} 

프로그램 출력 :

___________ 
|0 |1 |2 |3 | 
|4 |5 |6 |7 | 
|8 |9 |10|11| 
|12|13|14|15| 
------------- 
_______________________ 
|0 |1 |2 |3 |4 |5 |6 |7 | 
|8 |9 |10|11|12|13|14|15| 
------------------------- 
_____ 
|0 |1 | 
|2 |3 | 
|4 |5 | 
|6 |7 | 
|8 |9 | 
|10|11| 
|12|13| 
|14|15| 
------- 
__ 
|0 | 
|1 | 
|2 | 
|3 | 
|4 | 
|5 | 
|6 | 
|7 | 
|8 | 
|9 | 
|10| 
|11| 
|12| 
|13| 
|14| 
|15| 
---- 
_______________________________________________ 
|0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |10|11|12|13|14|15| 
------------------------------------------------- 
Array size not evenly divisible by 6 
Array size not evenly divisible by 32 
관련 문제