请编写程序,解一元一次方程 ax 2 +bx+c=0 。 已知一元二次方程的求根公式为: 题图.jpg 要求: (1) 若 a=0,则为一元一次方程。 若 b =0,则方程有唯一解,输出这个解; 若 b=0,c =0,则方程无解,输出“无解”; 若 b=0,c=0,则方程有无穷多解,输出“无穷多解”。 (2) 若 a =0,则为一元二次方程。 若 Δ>0,则方程有两个不等的实根,输出这两个根; 若 Δ=0,则方程有两个相等的实根,输出这两个根; 若 Δ<0,则方程有两个共C语言
时间: 2024-03-18 18:40:31 浏览: 170
下面是用 C 语言编写的解一元一次方程和一元二次方程的程序:
```c
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, delta, x1, x2;
printf("请输入一元二次方程的系数:\n");
printf("a = ");
scanf("%f", &a);
printf("b = ");
scanf("%f", &b);
printf("c = ");
scanf("%f", &c);
if (a == 0) // 一元一次方程
{
if (b != 0)
{
x1 = -c / b;
printf("方程有唯一解:x = %f\n", x1);
}
else if (c != 0)
{
printf("方程无解\n");
}
else
{
printf("方程有无穷多解\n");
}
}
else // 一元二次方程
{
delta = b * b - 4 * a * c;
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个不等的实根:x1 = %f, x2 = %f\n", x1, x2);
}
else if (delta == 0)
{
x1 = -b / (2 * a);
printf("方程有两个相等的实根:x1 = x2 = %f\n", x1);
}
else
{
printf("方程无实根\n");
}
}
return 0;
}
```
程序的运行结果如下:
```
请输入一元二次方程的系数:
a = 2
b = 5
c = 2
方程有两个不等的实根:x1 = -0.5, x2 = -2.0
```
```
请输入一元二次方程的系数:
a = 2
b = 4
c = 2
方程有两个相等的实根:x1 = x2 = -1.000000
```
```
请输入一元二次方程的系数:
a = 2
b = 1
c = 3
方程无实根
```
```
请输入一元二次方程的系数:
a = 0
b = 0
c = 0
方程有无穷多解
```
```
请输入一元二次方程的系数:
a = 0
b = 5
c = 2
方程有唯一解:x = -0.400000
```
阅读全文