全知全能を目指す人のありがたい雑記

何かしら意味のあるありがた~い話か、意味のない雑念だらけの日記を書く予定です。

2次元配列を使ったプログラム

#include <stdio.h>
int main(void){
    //NOTE:本当は、inputを可変長の配列にすると使い勝手がいい
    int input[2][5] = {};
    for(int row = 0; row < 5; ++row){
        scanf("%d%d",&input[0][row],&input[1][row]);
    }
    
    int rowSize = sizeof(input[0]) / sizeof(input[0][0]);
    int colomnSize = sizeof(input) / sizeof(input[0]);
    
    printf("======各行の平均======\n");
    for(int row = 0; row < rowSize; ++row){
        printf("%d %d %0.1f\n",input[0][row],input[1][row],(float)(input[0][row]+input[1][row])/colomnSize);
    }
    
    printf("======各列の平均======\n");
    int sum[2] = {};
    for(int row = 0; row < rowSize; ++row){
        for(int colomn = 0; colomn < colomnSize; ++colomn){
           sum[colomn] += input[colomn][row];
        }
        printf("%d %d\n",input[0][row],input[1][row]);
    }
    
    printf("%0.1f %0.1f\n",(float)sum[0]/rowSize,(float)sum[1]/rowSize);
}

入力

70 65
92 83
75 85
66 74
89 92

出力

======各行の平均======
70 65 67.5
92 83 87.5
75 85 80.0
66 74 70.0
89 92 90.5
======各列の平均======
70 65
92 83
75 85
66 74
89 92
78.4 79.8