请编写程序,解一元一次方程 ax2+bx+c=0 。已知一元二次方程的求根公式为: 要求:(1) 若 a=0,则为一元一次方程。 若 b=0,则方程有唯一解,输出这个解; 若 b=0,c=0,则方程无解,输出“无解”; 若 b=0,c=0,则方程有无穷多解,输出“无穷多解”。 (2) 若 a=0,则为一元二次方程。 若 Δ>0,则方程有两个不等的实根,输出这两个根; 若 Δ=0,则方程有两个相等的实根,输出这两个根; 若 Δ<0,则方程有两个共轭的虚根,输出这两个根。
时间: 2023-04-04 13:02:54 浏览: 232
我可以回答这个问题。以下是解一元一次方程的程序:
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, x;
printf("请输入一元一次方程的系数a, b, c:\n");
scanf("%f%f%f", &a, &b, &c);
if (a == 0)
{
if (b != 0)
{
x = -c / b;
printf("方程有唯一解:x = %f\n", x);
}
else if (c != 0)
{
printf("方程无解\n");
}
else
{
printf("方程有无穷多解\n");
}
}
else
{
float delta = b * b - 4 * a * c;
if (delta > 0)
{
float x1 = (-b + sqrt(delta)) / (2 * a);
float x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个不等的实根:x1 = %f, x2 = %f\n", x1, x2);
}
else if (delta == 0)
{
x = -b / (2 * a);
printf("方程有两个相等的实根:x1 = x2 = %f\n", x);
}
else
{
float realPart = -b / (2 * a);
float imagPart = sqrt(-delta) / (2 * a);
printf("方程有两个共轭的虚根:x1 = %f + %fi, x2 = %f - %fi\n", realPart, imagPart, realPart, imagPart);
}
}
return 0;
}
阅读全文