C++数组正负元素分别求和实现问题求助
解决数组正负元素分别求和的问题
你的代码有两个关键问题导致无法实现需求:
- sum变量定义在循环内部:每次循环都会重新初始化
sum = 0,累加的结果在循环结束后就被丢弃,根本没法保存累计值。 - 正负元素共用同一个sum:不管正负都加到同一个变量里,最终只能得到所有元素的总和,无法区分正负求和。
修正后的代码如下:
// 把求和变量放在循环外部,初始化0,确保循环中能持续累加 int sumPos = 0; // 存储正数元素的和 int sumNeg = 0; // 存储负数元素的和 for (int i = 0; i < 10; i++) { if (bilIniziale[i] > 0) { sumPos += bilIniziale[i]; } else if (bilIniziale[i] < 0) { sumNeg += bilIniziale[i]; } // 如果需要统计0的数量或总和,可以添加else分支处理 } // 循环结束后输出结果 cout << "正数元素总和:" << sumPos << endl; cout << "负数元素总和:" << sumNeg << endl;
关键说明
- 求和变量必须定义在循环外部,这样每次循环的累加值才能被保留,不会被重复初始化。
- 用两个独立的变量分别存储正数和与负数和,通过条件判断将对应元素加到各自的变量中。
- 额外处理了0的情况(既不加到正数也不加到负数),如果你的需求里需要把0归到某一类,可以调整条件分支。
内容的提问来源于stack exchange,提问作者Natao
相关产品推荐
相关产品推荐

