关于不知道输入次数的输入问题

#include
int main()
{
int a[10],i=0;
while(scanf("%d",&a[i])==1)
{
i++;
}
for(i=0;i {
printf("%d\n",a[i]);
}
} 当是while括号里的是==1,就能将值赋给每一个数组里的值,而
#include
int main()
{
int a[10],i=0;
while(scanf("%d",&a[i])!=0)
{
i++;
}
for(i=0;i<10;i++)
{
printf("%d\n",a[i]);
}
} 就不行呢?

 while(scanf("%d",&a[i])!=0)
->
while(scanf("%d",&a[i])!=-1)
或者
while(scanf("%d",&a[i])!=EOF)