为什么第二个代码的能输出,第一个的不能输出?

1.#include
int main()
{
int i,n,a,b,c,max=0;
while(scanf("%d",&n)!=0);
{
if(n==0)
return 0;
for(i=0;i {
scanf("%d %d",&a,&b);
c=a+b;
if(c>max)
max=c;

}
printf("%d\n",max);
}
return 0;
}
2.#include
int main()
{
int a,b,c,n,max=0,i;
while(scanf("%d",&n)!=0)
{
if(n==0)
return 0;
for(i=0;i {
scanf("%d %d",&a,&b);
c=a+b;
if(c>max)
max=c;
}
printf("%d\n",max);
}
return 0;
}

while()后面的 “;”

这两个,有什么区别么?求大牛解释

除了第一个多了个分号外,没啥区别。