anily 发表于 2021-10-22 20:56:53

回文数

课后作业

#include <stdio.h>
#include<stdio.h>
#include <math.h>
int returnnum(double num)
{        int size=0,y,h=0;
        double i,Ringt;
        double num2=num;
double num1=num;
        for(num1;num1>1;num1=num1/10)
        {
                size=size+1;
       }
        for(y=size-1;y>-1;y--)
        {
                if(y==0)
                {i=num;
                   num=num-floor(i)*pow(10,y);
                }
                else
                {
               i=num/pow(10,y);
                num=num-floor(i)*pow(10,y);
                }
       
                if(i!=0)
                {
                        Ringt=floor(i)*pow(10,h)+Ringt;
               
                }
                else
                {
                        Ringt=floor(i);
                }
                h=h+1;
       
}

        if(Ringt==num2)
        {
                return 1;
        }
       
                return 0;
}

       
int main()
{
        int iflag;
        double i={100,999};
        int result={0};
        for(i=100;i<999;i++)
        {
                for(i=999;i>100;i--)
                {
                        result=i*i;
                       
                        if(returnnum(result)==1)
                        {
                                if(result>result)
                                {
                                        result=result;
                                }
                        }
                }
               
        }
        printf("%d",result);
}
课后题我是这么做的但是有一个bug就是不加上if(i==913&&i==993)
                        {
                                printf("%f\n%f\n",i,i) ;
                        }
这句他的结果就会变成888888

anily 发表于 2021-10-22 20:58:37

因为我去看答案的时候答案打印出来的结果不是888888然后我就看一下我的代码
难道是因为i没到913 和993吗   结果都打到了就是我那句if判断了一下   可我不判断的时候他输出的结果只有888888

jhq999 发表于 2021-10-22 22:02:18

for(i=999;i>100;i--)\\越界了

anily 发表于 2021-10-22 22:32:35

jhq999 发表于 2021-10-22 22:02


解决了解决了
一个数组越界一个没定义初始化

jhq999 发表于 2021-10-22 22:35:26

本帖最后由 jhq999 于 2021-10-23 11:24 编辑

char val={0};
i=0;
tmp=num;
while(tmp)
{
   val=tmp%10;
   tmp/=10
   i++;
}
i--;
for(j=0;i>j;j++,i--)
{
    if(val!=val)break;
}
if(j>=i)是回文数
页: [1]
查看完整版本: 回文数