DEV C++编译器下要用pow函数需要什么样的头文件啊

for(inti=1;i<=9;++i)for(intj=0;j<=9;++j)for(intk=0;k<=9;++k){if(i*100+j*10+k-pow(i,3)... for(int i=1;i<=9;++i)
for (int j=0;j<=9;++j)
for (int k=0;k<=9;++k){
if (i*100+j*10+k-pow(i,3)-pow(j,3)-pow(k,3)) continue;
cout<<i<<j<<k<<"\n"; }
这个怎么在dev下就是出不来水仙花数啊
还是不行啊
答案都试过了,还是不行啊
展开
 我来答
帐号已注销
推荐于2017-10-15 · TA获得超过2326个赞
知道小有建树答主
回答量:419
采纳率:83%
帮助的人:216万
展开全部
/*************************
*水仙花数的实现(C++)
*math.h是C语言的数学库函数
*************************/

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
for(int i=1;i<=9;++i)
for (int j=0;j<=9;++j)
for (int k=0;k<=9;++k){
if (abs((i*100+j*10+k-pow(i*1.0,3)-pow(j*1.0,3)-pow(k*1.0,3)))>1e-6) continue;
cout<<i<<j<<k<<"\n";
}
return 0;
}
/**************************************
不能出水仙花的原因就是判断那句:
if (i*100+j*10+k-pow(i,3)-pow(j,3)-pow(k,3)) continue;
有两个错误:
第一个pow(double,double),pow(float,float),你提供的是pow(int ,int),系统不知道该匹配哪一个???
第二pow返回的是double,你用if(double)???对于if(double==0)这种判断是不对的,假设是if(5-4.999999),因为5在double里很有可能就是用4.99999来表示的。由于精度的原因,所以应该是if(abs(double)<Exp),也就是if(|5-4.999999|<0.0001),两个数绝对值小于精度,这样来判断相等,改进如上
***************************************/

参考资料: 华为编程规范

lx_kkudng
2009-03-10 · TA获得超过125个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:142万
展开全部
pow函数不可以接受int型的值,改后的是这样的:
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
for(float i=1;i<=9;++i)
for (float j=0;j<=9;++j)
for (float k=0;k<=9;++k)
{
if (i*100+j*10+k-pow(i,3)-pow(j,3)-pow(k,3))
continue;
cout<<i<<j<<k<<"\n";
}
}
//float,double,long double都可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王养命
2009-03-10 · TA获得超过216个赞
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:141万
展开全部
和在TC下一样,是:
#include<math.h>

要是采用C++风格的,是:
#include<cmath>

对“问题补充”的回答:
因为C里面的pow()函数返回值是double型,因为计算机表示浮点数会有误差的原因,导致在把一个int与一个float或double做相等比较时得不到正确的结果,所以把你的程序稍作修改即可:
if(i*100+j*10+k-(int)(pow(i,3)+pow(j,3)+pow(k,3)) continue;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5bc16bd
2009-03-10 · TA获得超过612个赞
知道小有建树答主
回答量:391
采纳率:0%
帮助的人:262万
展开全部
<math.h>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式