哪一步错了?求解…..

判断4和7的倍数 (10 分)
输入若干个整数,统计这些数中有多少个是4或7的倍数。
输入格式:

输入若干个整数,每个整数的取值在int范围之内,用空格隔开。

输出格式:

输出一个整数,为统计的结果。

输入样例:

30 21 5 16 9
结尾无空行
输出样例:

2
main(){
int i,count;
int a[1000];
count=0;
for(i=0;i<1000;i++){
scanf("%d",&a[i]);
}
if(a[i]%4==0||a[i]%7==0){
count++;
printf("%d",count);
}
}


#include <stdio.h>

int main(void) { 
    int i,count;
int a[1000];
count=0;
i=0;
while(scanf("%d",&a[i])!=EOF)
{
if(a[i]%4==0||a[i]%7==0){
count++;
}
i++;
}
printf("%d",count);
    return 0;
}

没有写出回车跳出循环的程序