抱歉,我還在學習如何編碼。我的問題很簡單。我正在嘗試制作一個 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
uj5u.com熱心網友回復:
您正在檢查回圈索引的奇偶校驗i。改為nums[i]在for回圈中使用:
if (nums[i] % 2 == 0)
// ... rest of code
uj5u.com熱心網友回復:
除了其他人給出的答復外,您只需檢查最后一位就可以使代碼更高效。基本上,奇數的最后一位總是 1,所以你可以做類似的事情
if ((nums[i] & 1) == 0)...
and 操作通常比未優化的 % 操作快得多,后者進行除法然后計算余數。
uj5u.com熱心網友回復:
嘿,在 if() 條件下的代碼中,您正在檢查索引,但需要檢查陣列值,例如 nums[i] ==> 將給出具有值的陣列
你的代碼 if (i % 2 == 0)
如果索引只是將其更改為 nums[i]%2,則到位
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/336516.html
