计数变量n为什么不能准确表示出回文数的个数?

#include"stdio.h"
void huiwen();
int main()
{
huiwen();
return 0;
}
void huiwen()
{
int t,a[5],n;
long int i,k;
for(i=10000;i<=99999;i++)
{
k=i;
t=4;
n=0;
while(k!=0)
{
a[t]=k%10;
k=k/10;
t--;
}
if((a[0]==a[4])&&(a[1]==a[3]))
{
n++;
printf("回文数为:%d\n",i);
}
}
printf("回文数共%d个!",n);
}

N的声明周期到头了,你看看大括号{ }的意义。

n初始化位置不对,每次循环都变为0了。

 #include"stdio.h"
void huiwen(void);
int main()
{
    huiwen();
    return 0;
}

void huiwen(void)
{
    int t,a[5],n;
    long int i,k;
    n=0; //放这里
    for(i=10000;i<=99999;i++)
    {
        k=i;
        t=4;
        while(k!=0)
        {
            a[t]=k%10;
            k=k/10;
            t--;
        }
        if((a[0]==a[4])&&(a[1]==a[3]))
        {
            n++;
            printf("回文数为:%d\n",i);
        }
    }
    printf("回文数共%d个!",n);
}

图片说明

图片说明