输入三个实数a、b、c,输出以它们为系数的机一元二次方程的根。
时间: 2023-05-14 19:06:03 浏览: 125
可以使用公式:x = (-b ± sqrt(b^2 - 4ac)) / 2a 来计算一元二次方程的根。具体实现可以参考以下代码:
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, delta, x1, x2;
printf("请输入三个实数a、b、c:\n");
scanf("%lf %lf %lf", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta < 0)
{
printf("该方程无实数根!\n");
}
else if (delta == 0)
{
x1 = x2 = -b / (2 * a);
printf("该方程有唯一实数根:x1 = x2 = %.2lf\n", x1);
}
else
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("该方程有两个实数根:x1 = %.2lf,x2 = %.2lf\n", x1, x2);
}
return 0;
}
相关问题
输入三个实数a、b、c,输出以它们为系数的一元二次方程的根
可以使用公式:x = (-b ± sqrt(b^2 - 4ac)) / 2a 来求解一元二次方程的根。具体步骤如下:
1. 计算判别式 delta = b^2 - 4ac
2. 如果 delta < 0,则方程无实数根,输出"无实数根"
3. 如果 delta = 0,则方程有一个实数根 x = -b / 2a,输出"x = "加上这个实数根的值
4. 如果 delta > 0,则方程有两个实数根 x1 = (-b + sqrt(delta)) / 2a,x2 = (-b - sqrt(delta)) / 2a,输出"x1 = "加上第一个实数根的值,"x2 = "加上第二个实数根的值
下面是具体的代码实现:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c;
cin >> a >> b >> c;
double delta = b * b - 4 * a * c;
if (delta < 0)
{
cout << "无实数根" << endl;
}
else if (delta == 0)
{
double x = -b / (2 * a);
cout << "x = " << x << endl;
}
else
{
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
cout << "x1 = " << x1 << ", x2 = " << x2 << endl;
}
return 0;
}
1、输入三个实数a、b、c,输出以它们为系数的一元二次方程的根。
可以使用公式:x1 = (-b + sqrt(b^2 - 4ac)) / 2a,x2 = (-b - sqrt(b^2 - 4ac)) / 2a,其中sqrt表示开方。具体实现可以参考以下代码:
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, delta, x1, x2;
printf("请输入三个实数a、b、c:\n");
scanf("%lf%lf%lf", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta < 0)
{
printf("该方程无实数根!\n");
}
else if (delta == 0)
{
x1 = x2 = -b / (2 * a);
printf("该方程有唯一实数根:x1 = x2 = %.2lf\n", x1);
}
else
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("该方程有两个实数根:x1 = %.2lf,x2 = %.2lf\n", x1, x2);
}
return 0;
}
阅读全文