2991 - 【设计型】第5章:选择控制结构 一元二次方程判断
时间限制 : 1 秒
内存限制 : 128 MB
编程求一元二次 a*x^2+b*x+c = 0 的根。包括以下判断和结果:
若a = 0,输出结果:不是一元二次方程
若 △ > 0,输出两个不等实根。
若 △ = 0,输出两个相等实根。
若 △ < 0,输出:无实根
题目输入
a,b,c
题目输出
若a = 0 ,则输出 不是一元二次方程
若有根,则输出 x1,x2 (结果保留两位小数)
若无实根,则输出 无实根
输入/输出样例
输入格式
1,2,1
输出格式
-1.00
C语言解答
#include<stdio.h> #include<math.h> #include<stdlib.h> main() { float a,b,c; float delta,x1,x2; const double zero = 1e-9; int sign = 0; scanf("%f,%f,%f",&a,&b,&c); if(fabs(a)<zero) { printf("不是一元二次方程"); exit(0); } delta = b*b-4*a*c; if(fabs(delta)<zero) { printf("%0.2f",-b/(2*a)); } else { if(delta > 0) sign = 1; else sign = 0; delta = sqrt(fabs(delta)); x1 = -b/(2*a); x2 = delta/(2*a); if(sign) { printf("%0.2f,%0.2f",x1+x2,x1-x2); } else { printf("无实根"); } } }