c语言初步经典题14--计算一元二次方程的根

题目:

有一方程ax^2+bx+c=0,a,b,c的值由键盘输入,输出方程的根。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>//要使用sqrt()必须包含这个头文件
#define DELTA   b*b -4*a*c
int main()
{double a, b, c;printf("请输一元二次方程的三个系数a、b、c:\n");scanf("%lf %lf %lf", &a, &b, &c);if (0==a && b !=0){printf("x = %f\n", -c / b);}else if (0 == a && 0 == b && 0 == c){printf("x = 全体实数\n");}//以上两种情况不属于一元二次方程,但是最好也考虑一下,因为后面的a会作为分母else if (DELTA >= 0){if (DELTA > 0){printf("x1 = %lf x2 = %lf\n", (-b + sqrt(DELTA)) / (2 * a), (-b - sqrt(DELTA)) / (2 * a));}else{printf("x1 = %lf\n", -b / (2 * a));}}else{printf("无解\n");}system("pause");return 0;
}

使用软件:vs2013
运行结果:
这里写图片描述