首页 > 代码库 > OJ刷题之《求方程的根》
OJ刷题之《求方程的根》
题目描述
求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。
输入
a b c
输出
x1=? x2=?
样例输入
4 1 1
样例输出
x1=-0.125+0.484i x2=-0.125-0.484i
提示
主函数已给定如下,提交时不需要包含下述主函数
/* C代码或C++代码 */
int main()
{
float a,b,c,q;
void shigen(float,float,float);
void denggen(float ,float );
void xugen(float ,float ,float);
scanf("%f%f%f",&a,&b,&c); //C
//或 cin>>a>>b>>c; //C++
q=b*b-4*a*c;
if(q>0) shigen(a,b,q);
else if(q==0) denggen(a,b);
else xugen(a,b,q);
return 0;
}
代码如下:
#include <iostream> #include <iomanip> #include <cmath> using namespace std; void shigen(float a,float b,float c) { float x1,x2; x1=(-b+sqrt(c))/(2*a); x2=(-b-sqrt(c))/(2*a); cout<<setiosflags(ios::fixed)<<setprecision(3); cout<<"x1="<<x1<<" "<<"x2="<<x2; } void denggen(float a,float b) { float x1,x2; x1=x2=-b/(2*a); cout<<"x1="<<x1<<" "<<"x2="<<x2; } void xugen(float a,float b,float c) { float p,q; p=-b/(2*a); q=sqrt(-c)/(2*a); cout<<setiosflags(ios::fixed)<<setprecision(3); cout<<"x1="<<p<<"+"<<q<<"i"<<" "<<"x2="<<p<<"-"<<q<<"i"; } int main() { float a,b,c,q; void shigen(float,float,float); void denggen(float ,float ); void xugen(float ,float ,float); cin>>a>>b>>c; q=b*b-4*a*c; if(q>0) shigen(a,b,q); else if(q==0) denggen(a,b); else xugen(a,b,q); return 0; }
运行结果:
数学没学好,还真不好学编程,我都不知道虚根的实部和虚部怎么求的,果断又问的度娘
OJ刷题之《求方程的根》
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。