解题思路:
一元二次方程 ax²+bx+c=0 (a≠0) 其求根依据判定式△的取值为三种 ( △=b²-4ac ) 1. △>0,方程有两个不相等的实数根; x1=[-b+√(△)]/2a; //( △=b²-4ac ) x2=[-b-√(△)]/2a; 2. △=0,方程有两个相等的实数根; x1=x2=[-b+√(△)]/2a= -b/2a ; 3. △<0,方程无实数根,但有2个共轭复根。 x1=[-b+√(△)*i]/2a; //( △=b²-4ac ) x2=[-b-√(△)*i]/2a;
注意事项:
注意控制格式,保留三位小数输出 sqrt()开平方函数,参数为正数
参考代码:
#include"iostream" #include"cmath" //调用sqrt()开平方函数 #include"cstdio" //调用printf()控制格式化输出 using namespace std; float x1,x2,a,b,c,z; void func1(){ //大于零 x1=( -b+sqrt(z) )/( 2*a ); x2=( -b-sqrt(z) )/( 2*a ); } void func2(){ //等于零 x1=x2=( -b )/( 2*a ); } void func3(){ //小于零 z=sqrt(-z); printf("x1=%.3f+%.3fi x2=%.3f-%.3fi\n",-b/(2*a),z/(2*a),-b/(2*a),z/(2*a)); } int main(){ cin>>a>>b>>c; z=b*b-4*a*c; if(z>0){ func1(); }else if(z<0){ func3(); return 0; }else{ func2(); } printf("x1=%.3f x2=%.3f\n",x1,x2); return 0; }
0.0分
48 人评分
#include<stdio.h> #include<math.h> float ting; float _sum2(float a,float b,float c); float _sum1(float a,float b,float c); float _sum0(float a,float b,float c); int main() { float a,b,c; scanf("%f %f %f",&a,&b,&c); ting=b*b-(4*a*c); if (ting>0) { _sum2(a,b,c); } if (ting==0) { _sum1(a,b,c); } if (ting<0) { _sum0(a,b,c); } return 0; } float _sum2(float a,float b,float c) { printf("x1=%.3f x2=%.3f",(-b+sqrt(ting))/2*a,(-b-sqrt(ting))/2*a); } float _sum1(float a,float b,float c) { printf("x1=%.3f x2=%.3f",-b/2*a,-
#include<stdio.h> #include<math.h> int main() { int a,b,c; double x1,x2,n,m,h; scanf("%d%d%d", &a, &b,&c); n=b*b-4*a*c; if(fabs(n)<1e-6) { x1=x2=-b/(2*a); printf("x1= x2=%.3f",x1=x2); } else if(n>1e-6) { x1=(-b-sqrt(n))/2*a; x2=(-b+sqrt(n))/2*a; printf("%.3f %.3f",x1,x2); } else { m=-b/(2*a); h=sqrt(-n)/(2*a); printf("%.3f+%.3fi ",m,h); printf("%.3f-%.3fi",m,h); } return 0; } 请问这为什莫,,,感谢
大老虎乖乖 2021-04-15 20:31:29 |
没打using namespace std
if(z>0){ func1(); }else if(z<0){ func3(); return 0;//这里的return 0是什么意思 }else{ func2(); } printf("x1=%.3f x2=%.3f\n",x1,x2); return 0; }
小han一定能学会 2021-03-07 09:49:26 |
啊明白了 强制退出
cin>>a>>b>>c; 这句啥意思啊大佬
void func3(){ //小于零 z=sqrt(-z); printf("x1=%.3f+%.3fi x2=%.3f-%.3fi\n",-b/(2*a),z/(2*a),-b/(2*a),z/(2*a)); } z=b*b-4*a*c; z<0 这段话中的z=sqrt(-z); 是不是错了?? 感觉应该是-z=sqrt(-z)
幻灭 2021-03-04 15:30:57 |
z是负数
C语言程序设计教程(第三版)课后习题8.8 (C++代码)浏览:583 |
十->二进制转换 (C++代码)(零和负数需要特殊处理)浏览:1135 |
C二级辅导-等差数列 (C语言代码)浏览:628 |
母牛的故事 (C语言代码)浏览:1409 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:855 |
字符串比较 (C语言代码)答案错误????浏览:641 |
输出正反三角形 (C语言代码)浏览:859 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:588 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:606 |
简单的a+b (C语言代码)浏览:618 |