题目:
有一方程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
运行结果: