回文数
课后作业#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 因为我去看答案的时候答案打印出来的结果不是888888然后我就看一下我的代码
难道是因为i没到913 和993吗 结果都打到了就是我那句if判断了一下 可我不判断的时候他输出的结果只有888888 for(i=999;i>100;i--)\\越界了 jhq999 发表于 2021-10-22 22:02
解决了解决了
一个数组越界一个没定义初始化 本帖最后由 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]