查找错误 并说出此程序的作用

#include <stdio.h> #define N 20 int fun(int n,int *a) { int i,j,k,sum; sum=j==0; for(k=3,i=0;i<n;i++,k+=5) { sum=sum+k; if(sum%4=2) a[j++]=sum; } return j; } main() { int a[N],d,n,i; printf("\nEnter n (4<n<=50): ");scanf("%d",&n); d=fun(n,a); printf("\n\nThe result :\n"); for(i=0; i<d; i++)printf("%6d",a[i]);printf("\n\n"); }

int fun(int n, int *a)
{
    int i, j, k, sum;
    sum = j = 0;                                \\这里要用=而不是==
    for (k = 3, i = 0; i < n; i++, k += 5)
    {
        sum = sum + k;
        if (sum % 4 == 2)                   \\这里要用==而不是=
            a[j++] = sum;
    }
    return j;
}

至于作用,是找出来4的倍数多2的和,但是这个和的定义是有点奇怪的...