解题思路:
一元二次方程 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"stdio.h" #include"math.h" //调用sqrt()开平方函数 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(){ //小于零 int A,B; z=sqrt(-z); A=-b/(2*a); B=z/(2*a); printf("x1=%.3f+%.3fi x2=%.3f-%.3fi\n",A,B,A,B); } int main(){ scanf("%f%f%f",&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分
1 人评分
C语言训练-尼科彻斯定理 (C++代码)浏览:680 |
C语言程序设计教程(第三版)课后习题5.4 (C++代码)按照惯例的只有一行核心代码浏览:1011 |
C语言训练-阶乘和数* (C语言代码)浏览:1060 |
C二级辅导-同因查找 (C语言代码)浏览:592 |
简单的a+b (C语言代码)浏览:593 |
简单的a+b (C语言代码)浏览:752 |
A+B for Input-Output Practice (III) (C语言代码)浏览:592 |
【偶数求和】 (C语言代码)浏览:588 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:609 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:585 |
与神明说 2019-08-30 14:37:25 |
不好意思蛤 确实 疏忽了