问题 -
要反转三位数的数字。并检查它们是否是回文。
逻辑错误:以下代码始终显示所有输入“不是回文数”。
d=0;
scanf("%d",&n);
a=n;
for(i=1;i<=3;i++) //loop will run 3 times corresponding to number of digits
{
c=a%10;
a=a/10;
for(f=100;f>=1;f=f/10) //for arranging digits in reverse order in number
{
d=d+f*c;
}
}
if(d==n) //checking whether number is palindrome or not
printf("palindrome");
else printf("not a palindrome");
答案 0 :(得分:0)
在第一个f=100
循环生效之前初始化for
。
答案 1 :(得分:0)
d=0;
f=100;
scanf("%3d", &n);
a=n;
for(i=1;i<=3;i++){
c=a%10;
a=a/10;
d=d+f*c;
f=f/10;// f/=10;
}
if(d==n)
printf("palindrome");
else
printf("not a palindrome");