大家好我因为某种原因我遇到了一个小问题。然而,无论何时我把我的int总和;它不会修复错误。
static void TotalOfEvenNegatives(int[] array)
{
for (int i = 0; i < array.Length; i++)
{
if (array[i] % 2 == 0 && array[i] < 0)
{
int sum;
sum += array[i];
}
}
}
答案 0 :(得分:2)
static void TotalOfEvenNegatives(int[] array)
{
int sum = 0;
for (int i = 0; i < array.Length; i++)
{
if (array[i] % 2 == 0 && array[i] < 0)
{
sum += array[i];
}
}
}
你需要在循环外部对它进行初始化并将其设置为0.通过在循环中设置它,每次迭代都会覆盖它,因此它永远不会递增。
答案 1 :(得分:1)
您在循环中声明sum
,从而覆盖所有值,将其声明为外部。
static int TotalOfEvenNegatives(int[] array)
{
int sum = 0; //HERE
for (int i = 0; i < array.Length; i++)
{
if (array[i] % 2 == 0 && array[i] < 0)
{
sum += array[i];
}
}
return sum;
}
此外,您的方法应该返回sum
,您可以像以下一样使用它:
int total = TotalOfEvenNegatives(new [] {1,2,3,4,}; //ClassName.TotalOfEvenNegatives
不要忘记使用sum
初始化0
,否则您将收到错误“使用未分配的变量”
答案 2 :(得分:0)
为什么不以简单的方式去做:
int[] myArray = {1,2,3,4,} ;
int sum = myArray.Where( x => x < 0 && 0 == x % 2 ).Sum() ;