我有这个代码,以便在数组中的偶数索引处对元素进行求和。
我想知道为什么如果我写作:
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));
}
谢谢
答案 0 :(得分:3)
i + 2
不会更改i
的值。您可以使用i += 2
或i = 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));
}