3----编程求解一元二次方程

来源:互联网 发布:数组转list 编辑:程序博客网 时间:2024/05/22 11:37

代码运行

问题描述

        编程求解一元二次方程。


算法分析

       主要是对一元二次方程推导求解公式的抽象,根据b*b-4ac的值来进行分类,用求根公式即可得出结果。

       因为要使用取绝对值函数fabs(),和开平方函数sqrt(),注意包含头文件#include<math.h>。


算法实现

#include<stdio.h>#include<math.h>void main(){float a,b,c,p,x1,x2,realpart,imagepart;printf("请输入一元二次方程的系数a,b,c的值:\n");scanf("%f,%f,%f",&a,&b,&c);if(a==0 && b==0)printf("该方程无解!\n");else if(a==0 && b!=0)printf("方程只有一个解:%.3f\n",-c/b);else       //二次项系数a不为0 {p=b*b-4*a*c;realpart=-b/(2*a);imagepart=sqrt(fabs(p))/(2*a);    //一元二次方程的实虚部 if(p<0)     //有虚数解 {printf("方程有虚数解:");printf("%.3f+%.3fi     ",realpart,imagepart);printf("%.3f+%.3fi\n",realpart,imagepart); } else if(p>0){x1=realpart+imagepart;x2=realpart-imagepart;printf("方程有两个实数解:");printf("%.3f and %.3f\n",x1,x2);}elseprintf("方程只有一个实数解:%.3f\n",realpart);}}