求方程的解

mac2024-07-21  53

题目描述

求ax2+bx+c=0方程的实根。a,b,c由键盘输入. 解方程要考虑系数a等于零的情况,且解x1、x2必须是float型。a等于零有两种情况(b==0,b!=0),a不等于零有三种情况(delta>0、==0、<0),先计算得到x1、x2,再printf输出

输入

输入三个数a,b,c

输出

输出方程的实根,如果方程有实根,则输出根;如果方程有2个不等实根,则分2行输出,第一行输出较大根,第二行输出较小根。 其余情况(如无实根等)则输出No

样例输入 1 -3 2

样例输出 2.000000 1.000000

#include<stdio.h> #include<math.h> int main() { float a,b,c,d; scanf("%f%f%f",&a,&b,&c); if(a==0) { if(b==0) printf("No\n"); else printf("%.6f\n",-c/b); } else { d=b*b-4*a*c; if(d>0) { printf("%.6f\n%.6f\n",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)); } if(d==0) { printf("%.6f\n",-b/(2*a)); } if(d<0) { printf("No\n"); } } return 0; }
最新回复(0)