您的位置:首页 > 其它

8.求一元二次方程的根

2018-01-31 09:54 274 查看
 求一元二次方程的根

本题目要求一元二次方程的根,结果保留2位小数。


输入格式:

输入在一行中给出3个浮点系数a、b、c,中间用空格分开。


输出格式:

根据系数情况,输出不同结果:

1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;

2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;

3)如果方程只有一个根,则直接输出此根;

4)如果系数都为0,则输出"Zero Equation";

5)如果a和b为0,c不为0,则输出"Not An Equation"。

#include

#include

int main()

{

float a=0, b=0, c=0;

scanf("%f", &a);

getchar();

scanf("%f", &b);

getchar();

scanf("%f", &c);

float d = b*b - 4.0 * a*c;

if (a != 0)

{

if (d == 0)

{

printf("%0.2f", -b / 2.0 / a);

}

else if (d > 0)

{

printf("%0.2f %0.2f", (-b + sqrt(d)) / 2.0 / a, (-b - sqrt(d)) / 2.0 / a);

}

else if (d < 0)

{

printf("%0.2f+%0.2fi %0.2f-%0.2fi ", -b / 2.0 / a, sqrt(-d) / 2.0 / a, -b / 2.0 / a, sqrt(-d) / 2.0 / a);

}

}

else if(a==0&&b!=0)

{

printf("%0.2f", -c / b);

}

else if (a == 0 && b == 0 && c != 0)

{

printf("Not An Equation");

}

else if (a == 0 && b == 0 && c == 0)

{

printf("Zero Equation");

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: