题目:
假设有一个一元二次方程,有a,b,c三个系数,求该方程的根并输出,没有则输出"Error"(已知头文件math.h中的求平方根的sqrt函数)。
分析:
要解决本题,我们首先要熟悉一元二次方程的求根公式
然后建立3个分支结构:
- 方程有2个不同实数根
- 方程有2个相同实数根
- 方程没有实数根
在分支结构中套用此公式即可解题。
代码实现:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
int main()
{
//方程的3个系数
double a = 0.0;
double b = 0.0;
double c = 0.0;
//方程的2个实数根
double root_1 = 0.0;
double root_2 = 0.0;
//判别式,判断方程有没有实数根,或者有几个不同的实数根
double judge = 0.0;
//录入系数
printf("Please enter the three coefficients of equatio:\n");
scanf("%lf %lf %lf", &a, &b, &c);
//计算判别式
judge = pow(b, 2) - (4 * a * c);
//方程有2个不同的实数根
if (judge > 0)
{
root_1 = (-b + sqrt(judge)) / (2 * a);
root_2 = (-b - sqrt(judge)) / (2 * a);
printf("root_1 = %.2lf, root_2 = %.2lf\n", root_1, root_2);
}
//方程有2个相同的实数根
else if (judge == 0)
{
root_1 = root_2 = -b / (2 * a);
printf("root_1 = root_2 = %.2lf\n", root_1);
}
//方程没有实数根
else
{
printf("Error\n");
}
return 0;
}