新手!关于循环带入右值有关问题.请看代码

新手求助!!!关于循环带入右值问题...请看代码
#include<stdio.h>
int main()
{int a,sum,n;
a=0;
sum=0;
printf("请输入你想从1加到多少:");
scanf("%d",&n);
while(n>0)//可以一直带入n的值
{
while(a++<n)sum=a+sum;//第一次带入n的值,往后无法带入
printf("总和:%d\n",sum);
printf("请输入你想从1加到多少:");
scanf("%d",&n);
}
printf("结束!\n");
}

为何第二个while无法再次带入n值?
新手不懂,望大虾么不吝赐教!!!

------解决方案--------------------
C/C++ code

int main()
{
    int a,sum,n;
    a=0;
    sum=0;
    printf("请输入你想从1加到多少:");
    scanf("%d",&n);
    while(n>0)//可以一直带入n的值
    {
        a = 0;
        while(a++<n)sum=a+sum;//第一次带入n的值,往后无法带入
        printf("总和:%d\n",sum);
        printf("请输入你想从1加到多少:");
        scanf("%d",&n);
    }
    printf("结束!\n");
    return 0;
}

------解决方案--------------------
LS正解!