编程时怎么计算平方根,sqrt前头加啥呀,我加cmath用不了,求大神回答,急!
问题补充:
不懂的就不要瞎掺和了,特别懂的各位大神请帮我解释一下,要详细一点,谢谢!
补充:刚才是电脑坏了,请帮我看一下这个程序哪里错了:#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 提供
其他回答
暂无其它回答!