[c程序求助]求一个四位数的反序数是他的九倍[精度问题]
发布网友
发布时间:2022-05-10 06:10
我来回答
共2个回答
热心网友
时间:2023-11-10 07:59
#include
void
main()
{
int
reorder(int
m);
int
y,i;
double
z;
for(i=1000;i<=1111;i++)
{
y=reorder(i);
z=(double)y/i;
/*
不是精度问题,y/i两个int除完还是int,再转double就不行了,必须先将一个int强制转换成double
*/
if
(z==9.000)
printf("%d的反序的他的9倍",i);
}
}
int
reorder(int
m)
{
int
a,b,c,d,n;
a=m%10;
b=m%100-a;
c=m%1000-b-a;
d=m-c-b-a;
n=a*1000+b*10+c/10+d/1000;
return(n);
}
热心网友
时间:2023-11-10 08:00
如果还是4位数,那么这个4位数
只有1000到1111。
#include
int
main()
{
int
n;
int
a,b,c,d;
//n的千百十个位数字
for
(n=1000;n<1112;n++)
{
a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
if
(n*9==d*1000+c*100+b*10+a)
printf("n=%d\t",n);
}
return
0;
}