编程时怎么计算平方根,sqrt前头加啥呀,我加cmath用不了,求大神回答,急!

原问题:编程时怎么计算平方根,sqrt前头加啥呀,我加cmath用不了,求大神回答,急!
分类:编程开发 > 最后更新时间:【2017-02-25 23:06:43】
问题补充:

不懂的就不要瞎掺和了,特别懂的各位大神请帮我解释一下,要详细一点,谢谢!

补充:刚才是电脑坏了,请帮我看一下这个程序哪里错了:#include <iostream>#include <cmath>using namespace std;int main(){ double a,b,c,s; char ch; cout<<"ax^2+bx+c=0"<<endl; cin>>a>>b>>c; if(s==sqrt(b*b-4*a*c),2) cout<<"x="<<-b+s/2*a<<"or"<<-b-s/2*a; cin>>ch; return 0;}我要的是能自动计算一元二次方程的程序补充:打错了,应该是这样:#include <iostream>#include <cmath>using namespace std;int main(){ double a,b,c,s; char ch; cout<<"ax^2+bx+c=0"<>a>>b>>c; if(s==sqrt(b*b-4*a*c),2) cout<<"x="<<-b+s/2*a<<"or"<<-b-s/2*a; cin>>ch; return 0;}运行不了补充:<iostream>和<cmath>莫名消失了,大家自行脑补补充:是iostream和cmath,它们俩老自动消失补充:他俩又莫名出现了,倒霉!

最佳答案

若你是用C++语言,sqrt的确在头文件cmath中,如以下程序

#include <iostream>
#include <cmath>
int main(void)
{
double x;
x=sqrt(888);
printf("%lf\n",x);
return 0;
}

结果就是888的开方为:

29.799329

你说的iostream和cmath消失又出现,应该是你的开发工具问题(C++开发工具有N多的)

可能是代码折叠功能引起的

追答:
你的程序有问题你的if(s==sqrt(b*b-4*a*c),2) 是什么意思s没有赋值,后面又用了一个逗号运算符正确的: if(b * b - 4 * a * c >= 0) //负数不能开方的 { s = sqrt(b * b - 4 * a * c); //这个要赋值 cout << "x=" << -b + s / 2 * a << "or" << -b - s / 2 * a; }当然,你还要考虑其它结果(如a==0时)

  • 追问:
    非常感谢!
    最佳答案由网友  whoami1978  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    10

    分享到:

    其他回答

    暂无其它回答!

      推荐