C#统计int数组偶数和时误将1计入偶数的问题如何解决?
问题原因
你的代码错误地使用了数组索引i做奇偶判断,而非数组中存储的实际元素值nums[i]:
- 数组下标从0开始计数,下标0对应第一个元素1,
i%2==0的判断逻辑会把索引为偶数位置的元素(1、8、10、40)累加进even变量,求和结果刚好为1+8+10+40=59,和你得到的运行结果一致,这就是1被错误计入偶数总和的原因。
修正代码
只需要把判断条件从i % 2 == 0改成nums[i] % 2 == 0即可,修改后完整代码如下:
int[] nums = new[] { 1, 5, 8, 9, 10, 25, 40 }; int even = 0; int odd = 0; for (int i =0 ; i < nums.Length; i++) { // 改为判断当前数组元素的奇偶性 if (nums[i] % 2 == 0) { even += nums[i]; } else { odd += nums[i]; } } Console.WriteLine(even); Console.WriteLine(odd);
修正后运行得到的偶数总和为8+10+40=58,奇数总和为1+5+9+25=40,符合统计要求。
内容的提问来源于stack exchange,提问作者Yorda
相关产品推荐
相关产品推荐

