C中数组中偶数索引处元素的总和

时间:2017-03-17 15:38:00

标签: c arrays sum

我有这个代码,以便在数组中的偶数索引处对元素进行求和。

我想知道为什么如果我写作: for(i=1; i<size; i+2)它不起作用?

#include <stdio.h>
#define SIZE 6

int func (int* arr, int size)
{
    int i;
    int j=2;
    int sum=0;
    for(i=0;i<size;i++)
        if (arr[i] % 2 == 0)  //why not for (i=1; i<size; i+2) ??????????
            sum+=arr[i];
    return sum;
} 

void main()
{
    int arr[SIZE]= {1,2,3,1,4,1};
    printf ("%d", func (arr,SIZE));

}

谢谢

1 个答案:

答案 0 :(得分:3)

i + 2不会更改i的值。您可以使用i += 2i = i+2

#include <stdio.h>
#define SIZE 6

int func (int* arr, int size)
{
    int i;
    int j=2;
    int sum=0;
    for(i=0; i<size; i+=2) // now works since i is being modified.
        sum+=arr[i];

    return sum;
} 

void main()
{
    int arr[SIZE]= {1,2,3,1,4,1};
    printf ("%d", func (arr,SIZE));
}