总偶数数组
Array of total even numbers
抱歉,我还在学习如何编码。我的问题很简单。
我正在尝试制作一个 int 数组,将偶数的总数加起来。我的问题是出于某种原因,我的代码将 1 计为偶数。
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 (i % 2 == 0)
{
even += nums[i];
}
else
{
odd += nums[i];
}
}
Console.WriteLine(even);
Console.WriteLine(odd);
输出将是:
59
和
39
您正在检查循环索引的奇偶校验 i
。在 for
循环中使用 nums[i]
代替:
if (nums[i] % 2 == 0)
// ... rest of code
嘿,在你的代码中 if()
条件你正在检查索引但需要检查
像 nums[i] ==>
这样的数组值将给出具有值
的数组
您的代码if (i % 2 == 0)
到位,如果index就改成nums[i]%2
除了其他人给出的回复之外,您可以通过检查最后一位来提高代码的效率。基本上,奇数的最后一位总是 1 所以你可以做类似
if ((nums[i] & 1) == 0)...
and 运算通常比未优化的 % 运算快很多,后者执行除法然后计算余数。
您可以使用 foreach 循环:
foreach (var num in nums)
{
if (num % 2 == 0)
{
even += num;
}
else
{
odd += num;
}
}
抱歉,我还在学习如何编码。我的问题很简单。 我正在尝试制作一个 int 数组,将偶数的总数加起来。我的问题是出于某种原因,我的代码将 1 计为偶数。
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 (i % 2 == 0)
{
even += nums[i];
}
else
{
odd += nums[i];
}
}
Console.WriteLine(even);
Console.WriteLine(odd);
输出将是: 59 和 39
您正在检查循环索引的奇偶校验 i
。在 for
循环中使用 nums[i]
代替:
if (nums[i] % 2 == 0)
// ... rest of code
嘿,在你的代码中 if()
条件你正在检查索引但需要检查
像 nums[i] ==>
这样的数组值将给出具有值
您的代码if (i % 2 == 0)
到位,如果index就改成nums[i]%2
除了其他人给出的回复之外,您可以通过检查最后一位来提高代码的效率。基本上,奇数的最后一位总是 1 所以你可以做类似
if ((nums[i] & 1) == 0)...
and 运算通常比未优化的 % 运算快很多,后者执行除法然后计算余数。
您可以使用 foreach 循环:
foreach (var num in nums)
{
if (num % 2 == 0)
{
even += num;
}
else
{
odd += num;
}
}