c程序代码由键盘输入3个正整数a,b,c,判断以a,b,c为系数的一元二次方程ax^2+bx+c=0的解的情况。要求:1、a=0,输出:该方程非一元二次方程。2、a≠0,判断:若b^2-4ac>0,该方程有两个不相等的实数根,且输出两根的值,若b^2-4ac=0,该方程有两个相等的实数根,且输出两根的值,若b^2-4ac<0,该方程有两个不等的复数根,且输出两根的值。
时间: 2023-05-22 19:06:21 浏览: 60
好的,根据您的要求,下面是我的回答:
请看如下 C 代码:
```
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, discriminant, root1, root2, realPart, imaginaryPart;
printf("请输入 a, b, c:");
scanf("%f %f %f", &a, &b, &c);
if (a == 0)
{
printf("该方程非一元二次方程");
}
else
{
discriminant = b * b - 4 * a * c;
if (discriminant > 0)
{
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("该方程有两个不相等的实数根,分别为 %.2f 和 %.2f", root1, root2);
}
else if (discriminant == 0)
{
root1 = root2 = -b / (2 * a);
printf("该方程有两个相等的实数根,均为 %.2f", root1);
}
else
{
realPart = -b / (2 * a);
imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("该方程有两个不等的复数根,分别为 %.2f+%.2fi 和 %.2f-%.2fi", realPart, imaginaryPart, realPart, imaginaryPart);
}
}
return 0;
}
```
接下来,请问还有什么问题需要我回答?
阅读全文