求告知两个代码的区别

#include<stdio.h>
int main()
{
    int n,i,x;
    while(scanf("%d",&n) != EOF)
    {
        int sum=0;
        for(i=0;i<n;i++)
        {
           scanf("%d",&x);
           sum+=x;
        }
        printf("%d\n",sum);
    }
    return 0;
}

#include<stdio.h>
int main()
{
    int n,i,x;
    while(1)
    {
        int sum=0;
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
           scanf("%d",&x);
           sum+=x;
        }
        printf("%d\n",sum);
    }
    return 0;

运行结果相差无几