用c语言编程计算并输出一元二次方程ax2+bx+c=0的两个实根,其中a、b、c的值由用户从键盘输入,假设a、b、c的值能保证方程有两个不相等的实根(即b2-4ac>0)。
时间: 2024-05-01 08:20:11 浏览: 108
以下是用C语言编写的计算并输出一元二次方程的两个实根的程序:
```c
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, x1, x2, delta;
printf("请输入一元二次方程的系数a、b、c:\n");
scanf("%f %f %f", &a, &b, &c);
delta = b * b - 4 * a * c;
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("该一元二次方程的两个实根分别为:x1 = %.2f,x2 = %.2f\n", x1, x2);
return 0;
}
```
程序首先提示用户输入一元二次方程的系数a、b、c,然后通过`scanf()`函数将输入的值存储在相应的变量中。接着,程序计算方程的判别式delta,并根据求根公式计算方程的两个实根x1和x2。最后,程序使用`printf()`函数输出结果。注意,为了保证输出结果的精度,使用了`%.2f`格式化字符串来限定输出结果的小数位数为两位。
相关问题
求一元二次方程ax^2+bx+c=0的根。C语言
可以使用公式:delta=b^2-4ac,根据 delta 的正负可以得出方程根的情况。
当 delta 大于 0 时,方程有两个不相等的实数根,分别是 (-b+sqrt(delta))/(2a) 和 (-b-sqrt(delta))/(2a);
当 delta 等于 0 时,方程有一个重根,即 -b/(2a);
当 delta 小于 0 时,方程无实数根,可以考虑输出复数根。
需要注意的是,在计算中要先进行开根号等基本操作,尽量避免出现精度误差。
用c语言输出一元二次方程ax2+bx+c=0的根.
```c
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, delta, x1, x2;
printf("请输入一元二次方程的系数a、b、c:");
scanf("%f %f %f", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta > 0) {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程的两个实根为:x1=%.2f,x2=%.2f\n", x1, x2);
} else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("方程有两个相等的实根:x1=x2=%.2f\n", x1);
} else {
printf("方程无实根\n");
}
return 0;
}
```
输入格式:a b c,用空格分隔。
输出格式:如果方程有两个实根,输出“方程的两个实根为:x1=xx,x2=xx”,保留两位小数;如果方程有两个相等的实根,输出“方程有两个相等的实根:x1=x2=xx”,保留两位小数;如果方程无实根,输出“方程无实根”。
阅读全文