以下程序的功能是判断一个5位数是否为回文数,即12321是回文数,个位与万位相同,十位与千位相同。请改正程序中的错误
时间: 2024-05-15 12:15:36 浏览: 6
```
#include<stdio.h>
int main()
{
int a,b,c,d,e,n;
printf("请输入一个5位数:\n");
scanf("%d",&n);
a=n/10000;
b=n%10000/1000;
c=n%1000/100;
d=n%100/10;
e=n%10;
if(a==e && b==d)
printf("%d是回文数\n",n);
else
printf("%d不是回文数\n",n);
return 0;
}
```
改正后的程序:
```
#include<stdio.h>
int main()
{
int a,b,c,d,e,n;
printf("请输入一个5位数:\n");
scanf("%d",&n);
a=n/10000;
b=n%10000/1000;
c=n%1000/100;
d=n%100/10;
e=n%10;
if(a==e && b==d && a!=0)
printf("%d是回文数\n",n);
else
printf("%d不是回文数\n",n);
return 0;
}
```
修改说明:
原程序的错误在于没有考虑到输入的数可能是0,而0在本题中不算回文数,因此需要在判断回文数时增加判断条件。改正后的程序增加了判断条件 `a!=0`,当万位为0时,不认为这个数是回文数。