参考(要确保数据合法)#include <stdio.h>#include <math.h>int main(int argc, char* argv[]){ double a,b,c,p,q,x1,x2; scanf("%lf%lf%lf",&a,&b,&c); p=-b/(2*a); q=sqrt(b*b-4*a*c)/(2*a); x1=p+q; x2=p-q; printf("%lf %lf",x1,x2); return 0;}
算法的“式子”题目中已经有了,下面按此算法写出的c++源程序:#include <iostream>#include <cmath>using namespace std;#define ESSP 0.00000001int main(){ double a,b,c,delta,p,q,x1,x2; cout<<"Input a,b,c:"; cin>>a>>b>>c; delta=b*b-4*a*c; p=-b/(2*a); q=delta/(2*a); if(delta>0) { x1=p+q; x2=p-q; cout<<"This eqution has two roots:"<<"x1="<<x1<<",x2="<<x2<<endl; }else if(delta<0) cout<<"This equation has no real root."<<endl; else { x1=x2=p; cout<<"This eqution has two equalize roots:"<<"x1=x2="<<p<<endl; } return 0;}判别式大于零时的运行例:如果只要判别式大于零时的根,可以把 else if(delta<0)起的相关语句去掉。
2 个回答
问答小助手
赞同来自 :
参考(要确保数据合法)
#include <stdio.h>
#include <math.h>
int main(int argc, char* argv[])
{
double a,b,c,p,q,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
p=-b/(2*a);
q=sqrt(b*b-4*a*c)/(2*a);
x1=p+q;
x2=p-q;
printf("%lf %lf",x1,x2);
return 0;
}
单身少年
赞同来自 :
算法的“式子”题目中已经有了,下面按此算法写出的c++源程序:#include <iostream>#include <cmath>using namespace std;#define ESSP 0.00000001int main(){ double a,b,c,delta,p,q,x1,x2; cout<<"Input a,b,c:"; cin>>a>>b>>c; delta=b*b-4*a*c; p=-b/(2*a); q=delta/(2*a); if(delta>0) { x1=p+q; x2=p-q; cout<<"This eqution has two roots:"<<"x1="<<x1<<",x2="<<x2<<endl; }else if(delta<0) cout<<"This equation has no real root."<<endl; else { x1=x2=p; cout<<"This eqution has two equalize roots:"<<"x1=x2="<<p<<endl; } return 0;}判别式大于零时的运行例:
如果只要判别式大于零时的根,可以把 else if(delta<0)起的相关语句去掉。
提问者
威望
粉丝
感谢
积分
赞同
提问
文章
回复
私信 问Ta
关注问题人数 3 人
相关问题