Palindrome计划中的逻辑错误

时间:2014-10-21 18:59:15

标签: c

问题 -
要反转三位数的数字。并检查它们是否是回文。
逻辑错误:以下代码始终显示所有输入“不是回文数”。

   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");

2 个答案:

答案 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");