Juanqilaiba 2021-11-20 15:49 采纳率: 66.7%
浏览 24
已结题

为什么一直都是输出No?(感觉没毛病)


#include<stdio.h>
#include<math.h>
int IsSquare( int n );
int huiwen(int j);
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF&&n!=0)
    {
        if(huiwen(n)==1&&IsSquare(n)==1)
        printf("YES\n");
        else
        printf("NO\n");
    }
}
int IsSquare( int n )
{
    double j;
    j=sqrt(n);
    if(j*j==n)
    return 1;
    else
    return 0; 
}
int huiwen(int j)
{
    int a,p=0;
    while(j!=0)
    {
        a=j%10;
        j=j/10;
        p=p*10+a;
    }
    if(p==j)
    return 1;
    else
    return 0;
}



img

  • 写回答

2条回答 默认 最新

  • 南七灵 2021-11-20 15:53
    关注
    
    int huiwen(int j)
    {
        int a, p = 0;
        int temp = j;
        while (temp != 0)
        {
            a = temp % 10;
            temp = temp / 10;
            p = p * 10 + a;
        }
        if (p == j)
            return 1;
        else
            return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月20日
  • 已采纳回答 11月20日
  • 创建了问题 11月20日