我试图返回左手边的总和等于右手边的索引。但是我的默认值为-1。为什么条件评估结果不为真?
代码如下:
#include <stdio.h>
int find_even_index(const int *values, int length)
{
int count = 0;
int sumL = 0;
int sumR = 0;
while(count < length)
{
sumR += values[count];
count++;
}
count = 0;
while(count < length)
{
sumL += values[count];
sumR -= values[count];
printf("sumL = %d\n", sumL);
printf("sumR = %d\n", sumR);
if(sumL == sumR)//why doesn't this condition work?
{
return count;
}
count++;
}
return -1;
}
int main (void)
{
int arr[] = { 1,2,3,4,3,2,1 };
printf("%d\n", (find_even_index(arr, 7)));
return 0;
}
答案 0 :(得分:2)
因为您要在对两个数字进行加减后进行比较。因此,目前它们将是相同的:
sumL = 6; sumR = 10
然后将4加到sumL,然后将4加到sumR:
sumL = 10; sumR = 6
然后您进行比较并获得不同的值。您必须在两次操作之间签入。