如何在不使用函数的情况下保存循环迭代值,分别求和数组奇偶元素?
解决方法
要实现分别累加偶数和奇数的总和,你只需要在循环外定义两个累加变量,在判断分支里分别累加对应数值即可,不用函数也能轻松搞定。
修改后的完整代码:
int eo_array[] = { 1,2,3,4,5,6,7,8 }; int even_total = 0; // 用来存所有偶数的总和 int odd_total = 0; // 用来存所有奇数的总和 // 输出数组大小 cout << "Size of array: " << sizeof(eo_array) / sizeof(eo_array[0]) << endl; for (int i = 0; i < sizeof(eo_array) / sizeof(eo_array[0]); i++) { if (eo_array[i] % 2 == 0) { cout << eo_array[i] << endl; even_total += eo_array[i]; // 把当前偶数加到总和里 } else { cout << eo_array[i] << endl; odd_total += eo_array[i]; // 把当前奇数加到总和里 } } // 最后输出两个总和 cout << "\n所有偶数的总和: " << even_total << endl; cout << "所有奇数的总和: " << odd_total << endl;
关键说明
你之前尝试的临时变量被覆盖,核心问题是变量声明位置不对:如果把累加变量放在for循环内部,每次循环迭代都会重新创建并初始化这个变量,之前存储的累加值自然会丢失。把even_total和odd_total放在循环外面,就能让它们在整个循环过程中保持状态,持续累加对应数值。
运行结果
执行后会先输出数组大小和所有元素,然后输出:
所有偶数的总和: 20 所有奇数的总和: 16
内容的提问来源于stack exchange,提问作者Label07
相关产品推荐
相关产品推荐

