解题思路:
一元二次方程 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语言代码)不知道怎么直接在scanf中用枚举变量浏览:1306 |
淘淘的名单 (C语言代码)答案错误???浏览:593 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:373 |
校门外的树 (C语言代码)浏览:956 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:563 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:780 |
本人酷爱递归实现很多问题,这里也是浏览:549 |
用筛法求之N内的素数。 (C语言代码)浏览:646 |
P1000 (C语言代码)浏览:868 |
1024题解浏览:806 |
与神明说 2019-08-30 14:37:25 |
不好意思蛤 确实 疏忽了