解题思路:
一元二次方程 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 人评分
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:495 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:904 |
C语言训练-尼科彻斯定理 (C语言代码)浏览:469 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1430 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:834 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:531 |
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:669 |
字符逆序 (C语言代码)浏览:621 |
程序员的表白 (C语言代码)浏览:598 |
字符串比较 (C语言代码)浏览:685 |
与神明说 2019-08-30 14:37:25 |
不好意思蛤 确实 疏忽了