プログラミング言語 C
二次元配列を 使って、表計算するコードが 下の本に 載っていた*1ので、ちょっと いじってみる。
・プログラミングの力を生みだす本 (isbn:4274132072)
total と average の 二重ループでは、 row と column の順が 逆になっています。
表は こんな感じで、
col 0 | col 1 | col 2 | col 3 | total | |
row 0 | 1 | 2 | 3 | 4 | |
row 1 | 2 | 3 | 4 | 5 | |
row 2 | 3 | 4 | 5 | 6 | |
average |
/* table.c */
#include main()
{
int data[4][5];
int i, j, sum;
puts("Input data");
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
printf("%d %d > ", i, j);
fscanf(stdin, "%d", &data[i][j]);
}
putchar('\n');
}
for (i = 0; i < 3; i++) {
sum = 0;
for (j = 0; j < 4; j++)
sum += data[i][j];
data[i][4] = sum;
}
for (j = 0; j < 4; j++) {
sum = 0;
for (i = 0; i < 3; i++)
sum += data[i][j];
data[3][j] = sum / 3;
}
data[3][4] = 0;
puts("total and average");
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++)
printf("%4d ", data[i][j]);
putchar('\n');
}
}
*1:p131