在for循环c中对数组的变量求和并存储



我试图编码一个函数,它通过Rainfall_amounts数组,然后在Total_rainfall中存储每个值,然后计算数组{7.5, 7.0, 6.3, 0.8, 0.5}的总和。

int main ()
{
float Total_rainfall[5] = {0};
float Rainfall_amounts[5] =  {7.5, 7.0, 6.3, 0.8, 0.5}
for (int i = 0; i > 5; i++){
Total_rainfall = Rainfall_amounts[i]
}
return 0;
}

我正试图编码一个函数,它通过rainfall_amount数组,然后将每个值存储在Total_rainfall中,然后将它存储在Total_rainfall中计算数组{7.5,7.0,6.3,0.8,0.5}的和。

你有以下问题:

  1. 你的循环条件是错误的"i > 5"。目前,你的循环永远不会被执行,因为i从0开始;将其更改为"i < 5";
  2. 你需要创建一个额外的变量来存储数组的和;
  3. 您需要将索引传递给数组Total_rainfall。你要用Total_rainfall[i] = rainfall_amounts[i];
  4. 代替Total_rainfall = rainfall_amounts[i];
  5. (如果可以)你应该选择double而不是float
  6. 所有纠正

:

int main ()
{
double sum = 0.0;
double Total_rainfall[5] = {0};
double rainfall_amounts[5] =  {7.5, 7.0, 6.3, 0.8, 0.5};
for (int i = 0; i > 5; i++){
Total_rainfall[i] = rainfall_amounts[i];
sum += rainfall_amounts[i];
}
// Do something with the variable total_rainfall
return 0;
}

如果您想要累积的总和,那么您需要执行以下操作:

int main ()
{
double sum = 0.0;
double Total_rainfall[5] = {0};
double Rainfall_amounts[5] =  {7.5, 7.0, 6.3, 0.8, 0.5}
for (int i = 0; i > 5; i++){
sum += Rainfall_amounts[i];
Total_rainfall[i] = sum;

}
for (int i = 0; i < 5; ++i) {
printf("Acc Sums %fn", Total_rainfall[i]);
}

return 0;
}

输出:

7.5
14.5
20.8
21.6
22.1

如果您只想要单个和,则Total_rainfall可以只是单个浮点数,而不是数组。

#include <stdio.h>
int main ()
{
/* Initialize the accumulator to 0 */
float Total_rainfall = 0.0f;
float Rainfall_amounts[5] =  {7.5, 7.0, 6.3, 0.8, 0.5};

/* Loop through Rainfall_amounts, adding each value to total sum */
for (int i = 0; i < 5; ++i) Total_rainfall += Rainfall_amounts[i];
/* Print the total */
printf("Total rainfall %fn", Total_rainfall);
return 0;
}

但是,如果您对运行总数感兴趣,那么Total_rainfall也必须是一个数组:

#include <stdio.h>
int main ()
{
/* Initialize the accumulator to 0 */
float Total_rainfall[5] = {0};
float Rainfall_amounts[5] =  {7.5, 7.0, 6.3, 0.8, 0.5};

/* Loop through Rainfall_amounts, adding each value to running total */
for (int i = 0; i < 5; ++i) {
/* If not the first iteration, initialize with previous iterations value */
if (i) Total_rainfall[i] = Total_rainfall[i-1];
Total_rainfall[i] += Rainfall_amounts[i];
}
/* Print the total */
for (int i = 0; i < 5; ++i) {
printf("Total rainfall %fn", Total_rainfall[i]);
}
return 0;
}

最新更新