回答編集履歴

1

2022/01/28 13:27

投稿

shsh_
shsh_

スコア113

test CHANGED
@@ -3,15 +3,23 @@
3
3
  ```C
4
4
  #include <stdio.h>
5
5
 
6
+ #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
7
+ #define SPLIT_SIZE 5
8
+
6
9
  int main(void)
7
10
  {
8
- int num[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
11
+ int num[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, };
9
- int (*num5)[5] = (int(*)[5])num;
12
+ int (*split_num)[SPLIT_SIZE] = (int(*)[SPLIT_SIZE])num;
10
13
 
11
- for (size_t i = 0; i < 2; i++){
14
+ for (size_t i = 0; i < ARRAY_SIZE(num) / SPLIT_SIZE; i++){
12
- for (size_t j = 1; j < 5; j++){
15
+ for (size_t j = 0; j < SPLIT_SIZE; j++){
13
- printf("num5[%zu][%zu] = %d\n", i, j, num5[i][j]);
16
+ printf("split_num[%zu][%zu] = %d\n", i, j, split_num[i][j]);
14
17
  }
18
+ }
19
+
20
+ size_t i = ARRAY_SIZE(num) / SPLIT_SIZE;
21
+ for (size_t j = 0; j < ARRAY_SIZE(num) % SPLIT_SIZE; j++){
22
+ printf("split_num[%zu][%zu] = %d\n", i, j, split_num[i][j]);
15
23
  }
16
24
 
17
25
  return 0;