找出错误改正 并说明程序的目的

#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"); }

if(sum%4==2)少了一个= sum=j=0;这行之前多了一个= 输入n之后传到fun函数,fun函数循环n次,每次判断sum对4求余是否等于2,是放到a数组里,最后返回数组长度,输出

#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");
}