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