移动数组元素进行计算

时间:2018-03-24 07:43:26

标签: arrays function mean temperature

目前我的程序正在读取.txt文件中的输入,它总共包含6480个读数。然后我将其分配给一个二维数组,其中第一个维度代表天数,第二个维度代表每天的读数。有3个月的结果是90天,每小时有6个读数(持续12小时)所以每天72个读数

float readings[90][72];
int days, rperday;

for(days=0; days<90; days++){
 for(rperday=0; rperday<72; rperday++){
    scanf("%f", &readings[days][rperday]);
    printf("{%d %d %.2f}", days, rperday, readings[days][rperday]);
 }
}

我目前不确定如何操纵for循环以便我计算当天的每小时平均值。一个例子是readings[0][0] - readings[0][11]将是第1小时的读数。随后,readings[0][12] - readings[0][17]将是第二个小时的读数。

我现在的当前代码是这样的:对于这段代码,我不确定如何操作变量x以使变量从0-11,12-17跳转等等。 / p>

for(months=0; months<3; months++){
        for(i=months*30; i<(months+1)*30; i++){
    for (j=0; j<72;j++){
        sumperday += readings[i][j];
        for(x=0; x<12; x++){
            for(a=x*6; a<(x+1)*6; a++){
                sumperhr += readings[i][a];
            }                   
            meanperhr = sumperhr/6;
            printf("Day [%d] Hour [%d] MeanPerHr is %.2f\n", i,x,meanperhr);
            sumperhr=0;
        }

    }
    }
    }

1 个答案:

答案 0 :(得分:1)

如何(伪代码)

for(int i=0 ; i + 30 < 90 ; i++){
  int mean = 0;
  for(int j = i; j < 30 + i; j++){
    for(int k = 0; k < 72; k++){
      mean = mean + reading[j][k];
    }
  }
  mean_arr[i] = mean;
}