此代码有什么问题?每次显示错误的输出

时间:2018-10-07 17:10:55

标签: c function

#include<stdio.h>

int palindrome(int n);

int main()
{
    int x;
    scanf("%d",&x);
    palindrome(x);
    return 0;
}

int palindrome(int n)
{
    int r,re=0;
    while(n !=0)
    {
        r=n%10; // remainder= the number modulus 10
        re=r+re*10;
        n=n/10;
    }
    if(n==re) // if the number is equal to the reverse number then it is 
              // palindrome otherwise not palindrome.
        printf("Palindrome");
    else
        printf("Not Palindrome");
}

1 个答案:

答案 0 :(得分:1)

当您的代码到达while函数中的palindrome循环时,n的值变为 0 ,然后将其与{ {1}}是re的反向版本,除非n的值本身是 strong 文本,否则每次答案都是不是回文

您应该:

  • n的值复制到某个变量中,然后将其与n进行比较,而不是将rere进行比较。
  • n函数的末尾放置一个虚拟return
  • 注释回文,否则回文。评论/部分。