PTA

您所在的位置:网站首页 输入一个一元二次方程的系数abc求两根的编程 PTA

PTA

2023-12-16 00:44| 来源: 网络整理| 查看: 265

PTA——求一元二次方程的根

题目:本题目要求一元二次方程ax^2+bx+c=0的根,结果保留2位小数。

输入格式:

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

输出格式:

根据系数情况,输出不同结果: 1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小; 2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的; 3)如果方程只有一个根,则直接输出此根; 4)如果系数都为0,则输出"Zero Equation"; 5)如果a和b为0,c不为0,则输出"Not An Equation"。

输入样例1: 2.1 8.9 3.5 输出样例1: -0.44 -3.80 输入样例2: 1 2 3 输出样例2: -1.00+1.41i -1.00-1.41i 输入样例3: 0 2 4 输出样例3: -2.00 输入样例4: 0 0 0 输出样例4: Zero Equation 输入样例5: 0 0 1 输出样例5: Not An Equation 整体思路如下:

首先啊,我们将a=0与a!=0的情况分开,当a=0的时候的情况,大家应该都能轻松的写出来,当a!=0的时候,我们定义一个变量dota去存我们一元二次方程中所谓的△的值,运用△的值来判断根的类型和根的数量,任何接下来的公式套算就是数学的事了,我就不在这一一赘述了。

整体代码如下: #include #include int main() { double a,b,c; double dota,x1,x2; scanf("%lf%lf%lf",&a,&b,&c); if(a==0) { if(b==0&&c==0) printf("Zero Equation"); if(b==0&&c!=0) printf("Not An Equation"); if(b!=0&&c!=0) printf("%.2f",(-c)/b); } else { dota=b*b-4*a*c; if(dota>0) { x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("%.2lf\n",x1); printf("%.2lf",x2); } if(dota==0) { printf("%.2lf",(-b)/4*a); } if(dota


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3