帮忙看一下哪里有错误,运行之后没有任何反应?

输入一个正整数n,编程统计1-n的自然数中,各位数字之和是偶数的个数。

#include <stdio.h>
int main()
{
    int a,b,c,m,n;
    printf("请输入一个正整数:");
    scanf("%d",&n);
    for(a=1;a<=n;a++)
    {
        m=0;
        while(a!=0)
        {
            b=a%10;
            c=c+b;
            a=a/10;
        }
            if(c%2==0)
                m++;
    }
    printf("个数为:%d\n",m);
    return 0;
}
#include <stdio.h>
int main()
{
    int a,b,c,m,n;
    printf("请输入一个正整数:");
    scanf("%d",&n);
    m=0;
    for(a=1;a<=n;a++)
    {
        c = 0;
        int a1=a;
        while(a1!=0)
        {
            b=a1%10;
            c=c+b;
            a1=a1/10;
        }
        if(c%2==0)
            m++;
    }
    printf("个数为:%d\n",m);
    return 0;
}

你是不是先得给n赋一个不小于a的值

变量c没有赋初始值,而且m的赋值应该放在for循环之前