#include <stdio.h>
#define ROW 3
#define COL 4
int a[ROW][COL] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int sum[ROW];
void calculate(int (*a_ptr)[4]) {
for (int i = 0; i < ROW; i++) {
int row_sum = 0;
for (int j = 0; j < COL; j++) {
row_sum += a_ptr[i][j];
}
sum[i] = row_sum;
}
}
int main(void) {
calculate(a);
printf("--- 2次元配列 a の各行の合計 ---\n"); for (int i = 0; i < ROW; i++) {
printf("a[%d]行目の合計 (sum[%d]) = %d\n", i
, i
, sum
[i
]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFJPVyAzCiNkZWZpbmUgQ09MIDQKCmludCBhW1JPV11bQ09MXSA9IHsKICAgIHsxLCAyLCAzLCA0fSwKICAgIHs1LCA2LCA3LCA4fSwKICAgIHs5LCAxMCwgMTEsIDEyfQp9OwoKaW50IHN1bVtST1ddOwoKdm9pZCBjYWxjdWxhdGUoaW50ICgqYV9wdHIpWzRdKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IFJPVzsgaSsrKSB7CiAgICAgICAgaW50IHJvd19zdW0gPSAwOwogICAgICAgIAogICAgICAgCiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBDT0w7IGorKykgewogICAgICAgICAgICByb3dfc3VtICs9IGFfcHRyW2ldW2pdOwogICAgICAgIH0KICAgICAgIAogICAgICAgIHN1bVtpXSA9IHJvd19zdW07CiAgICB9Cn0KCmludCBtYWluKHZvaWQpIHsKICAgIGNhbGN1bGF0ZShhKTsKCiAgIAogICAgcHJpbnRmKCItLS0gMuasoeWFg+mFjeWIlyBhIOOBruWQhOihjOOBruWQiOioiCAtLS1cbiIpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBST1c7IGkrKykgewogICAgICAgIHByaW50ZigiYVslZF3ooYznm67jga7lkIjoqIggKHN1bVslZF0pID0gJWRcbiIsIGksIGksIHN1bVtpXSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=