设有一四位数abcd=(ab+cd)2,编写一个程序,求a、b、c、d。。。。请问我的编程哪错了??
答案:2 悬赏:70 手机版
解决时间 2021-11-23 00:48
- 提问者网友:刺鸟
- 2021-11-22 06:59
设有一四位数abcd=(ab+cd)2,编写一个程序,求a、b、c、d。。。。请问我的编程哪错了??
最佳答案
- 五星知识达人网友:低音帝王
- 2021-11-22 07:35
没有错误,但不够完美。
#include
int main()
{
int a,b,c,d,i;
for(i=1000;i<=9999;i++)
{
a=i/1000;
b=(i-a*1000)/100;
c=(i-a*1000-b*100)/10;
d=i-a*1000-b*100-c*10;
if(i==((a+c)*10+b+d)*((a+c)*10+b+d))
printf("%d,%d,%d,%d\n",a,b,c,d);
}
return 0;
}追问if(i==((a+c)*10+b+d)*((a+c)*10+b+d))
if(i==pow((a+c)*10+b+d,2))已经加了
这两个有什么不同吗?
我们两个的程序运行结果不同呀。我的只有最后一个数追答pow结果是浮点数,与整数i比较可能有精度问题而不相等。
#include
int main()
{
int a,b,c,d,i;
for(i=1000;i<=9999;i++)
{
a=i/1000;
b=(i-a*1000)/100;
c=(i-a*1000-b*100)/10;
d=i-a*1000-b*100-c*10;
if(i==((a+c)*10+b+d)*((a+c)*10+b+d))
printf("%d,%d,%d,%d\n",a,b,c,d);
}
return 0;
}追问if(i==((a+c)*10+b+d)*((a+c)*10+b+d))
if(i==pow((a+c)*10+b+d,2))已经加了
这两个有什么不同吗?
我们两个的程序运行结果不同呀。我的只有最后一个数追答pow结果是浮点数,与整数i比较可能有精度问题而不相等。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯