我试图编码一个函数,它通过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}的和。
你有以下问题:
- 你的循环条件是错误的
"i > 5"
。目前,你的循环永远不会被执行,因为i
从0开始;将其更改为"i < 5"
; - 你需要创建一个额外的变量来存储数组的和;
- 您需要将索引传递给数组
Total_rainfall
。你要用Total_rainfall[i] = rainfall_amounts[i];
代替 - (如果可以)你应该选择
double
而不是float
。 所有纠正
Total_rainfall = rainfall_amounts[i];
:
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;
}