C语言输入三个实数a、b、C, 输出以它们为系数的机一元二次方程的根。
时间: 2023-05-17 16:04:18 浏览: 130
可以使用以下代码实现:
#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;
}
相关问题
编写一个c语言程序,输入三个实数a、b、c,输出以它们为系数的机一元二次方程的根。
以下是一个简单的 C 语言程序,可以输入三个实数 a、b、c,计算并输出一元二次方程的根:
```c
#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("该方程有唯一实数根 x = %.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;
}
```
注意:该程序只能计算实数根,如果方程有复数根,则无法计算。
c语言由键盘输入3个正整数a,b,c,判断以a,b,c为系数的一元二次方程的解的情况。要求:1、,输出:该方程非一元二次方程。2、,判断:若,该方程有两个不相等的实数根,且输出两根的值,若,该方程有两个相等的实数根,且输出两根的值,若,该方程有两个不等的复数根,且输出两根的值。输入格式三个正整数a,b,c输出格式输出以a,b,c为系数的一元二次方程的解的情况
以下是C知道的回答:
请看以下代码:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int a, b, c;
double delta, x1, x2;
scanf("%d %d %d", &a, &b, &c);
if (a == 0)
{
printf("该方程非一元二次方程");
}
else
{
delta = b * b - 4 * a * c;
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("该方程有两个不相等的实数根,分别为 %.2lf 和 %.2lf", x1, x2);
}
else if (delta == 0)
{
x1 = x2 = -b / (2 * a);
printf("该方程有两个相等的实数根,均为 %.2lf", x1);
}
else
{
printf("该方程有两个不等的复数根");
}
}
return 0;
}
```
输入格式为三个正整数a,b,c,输出格式为该方程的解的情况。如果该方程非一元二次方程,则输出"该方程非一元二次方程";如果该方程有两个不相等的实数根,则输出"该方程有两个不相等的实数根,分别为x1和x2",其中x1和x2为实数根的值,保留两位小数;如果该方程有两个相等的实数根,则输出"该方程有两个相等的实数根,均为x",其中x为实数根的值,保留两位小数;如果该方程有两个不等的复数根,则输出"该方程有两个不等的复数根"。
希望这个回答能够帮到你!
阅读全文