C语言. 求解一元二次方程。 **输入格式要求:"%lf %lf %lf" 提示信息:"请分别输入二次项、一次项、常数项系数a,b,c:" **输出格式要求:"方程%.1lfx^2" "%.1lfx" "%.1lf=0" "无解.\n" "有两个根:x1=%.1lf,x2=%.1lf\n" "有一个根:x=%.1lf\n"
时间: 2023-07-06 09:39:51 浏览: 48
好的,这是一个比较基础的C语言问题,我来给您提供代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c; // 二次项、一次项、常数项系数
printf("请分别输入二次项、一次项、常数项系数a,b,c:");
scanf("%lf %lf %lf", &a, &b, &c);
double delta = b * b - 4 * a * c; // 计算判别式
if (delta < 0) {
printf("无解.\n");
} else if (delta == 0) {
double x = -b / (2 * a);
printf("有一个根:x=%.1lf\n", x);
} else {
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
printf("有两个根:x1=%.1lf,x2=%.1lf\n", x1, x2);
}
return 0;
}
```
这个程序会根据用户输入的三个系数,计算出一元二次方程的解,并输出结果。请注意,如果判别式小于0,那么方程无解;如果判别式等于0,那么方程有一个根;如果判别式大于0,那么方程有两个根。
相关问题
求解一元二次方程c语言
以下是一个求解一元二次方程的C语言小程序,按照标准形式输入方程所需参数即可得到方程的解:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, delta, x1, x2, realPart, imagPart;
printf("请输入一元二次方程的系数:\n");
printf("a = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);
printf("c = ");
scanf("%lf", &c);
delta = b * b - 4 * a * c;
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个不同的解:x1 = %.2lf, x2 = %.2lf\n", x1, x2);
}
else if (delta == 0)
{
x1 = x2 = -b / (2 * a);
printf("方程有一个解:x1 = x2 = %.2lf\n", x1);
}
else
{
realPart = -b / (2 * a);
imagPart = sqrt(-delta) / (2 * a);
printf("方程无解:x1 = %.2lf + %.2lfi, x2 = %.2lf - %.2lfi\n", realPart, imagPart, realPart, imagPart);
}
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;
// 输入a、b、c
printf("请输入一元二次方程的系数:\n");
printf("a = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);
printf("c = ");
scanf("%lf", &c);
// 计算判别式的值
delta = b * b - 4 * a * c;
// 判断根的情况并输出结果
if (a == 0) {
if (b == 0) {
if (c == 0) {
printf("方程有无数解。\n");
} else {
printf("方程无解。\n");
}
} else {
printf("方程的解为:x = %.2lf\n", -c / b);
}
} else {
if (delta > 0) {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程的解为:x1 = %.2lf, x2 = %.2lf\n", x1, x2);
} else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("方程的解为:x1 = x2 = %.2lf\n", x1);
} else {
printf("方程无实数解。\n");
}
}
return 0;
}
```
程序中的注释已经解释了各个部分的实现方法。需要注意的是,程序中使用了`double`类型,因为方程的系数可能是小数。此外,为了避免计算平方根时出现负数,判别式的值应该先进行判断,如果是负数,则方程无实数解。