用else if结构在负数范围内求解一元二次方程的根
2017-06-16 20:51
351 查看
#include <stdio.h> //标准输入输出头文件
#include <math.h> //数学函数的头文件
/***********主函数main()***********
函数说明:
用else if结构在复数范围内求解一元二次方程的根
函数功能:
实现在复数范围内求解一元二次方程的根
变量说明:
a,b,c为一元二次方程的三个系数
p为一元二次方程判别式b*b-4*a*c的结果
x1,x2为一元二次方程的两个实根 realpart,imagepart为一元二次方程的实部和虚部
函数返回值:
此处不需要返回值,因此返回值为0.
***********************************/
int main()
{
//临时变量,存放输入的系数
float a,b,c,p;
//临时变量,存放两个实根
float x1,x2;
//临时变量,存放虚部和实部
float realpart,imagepart;
printf("请输入一元二次方程的系数a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
//当a等于0并且b等于0时无解
if(0 == a && 0 == b )
{
printf("无解!");
}
//当a等于0并且b不等于0时只有一个解
else if(0 == a && 0 != b)
{
printf("方程只有一个解:%.3f\n",-c/b);
}
else
{
p = b*b - 4*a*c;
realpart = -b/(2*a);
imagepart = sqrt(fabs(p)/(2*a));
//当判别式p小于0时,有虚数解
if(p < 0)
{
printf("方程有虚数解:\n");
printf("%.3f+%.3fi\n",realpart,imagepart);
printf("%.3f+%.3fi\n",realpart,imagepart);
}
//当判别式p大于0时,有实数解
else if(p > 0)
{
x1 = realpart + imagepart;
x2 = realpart - imagepart;
printf("方程有两个实数解:\n");
printf("x1=%.3f\n",x1);
printf("x2=%.3f\n",x2);
}
//当判别式p等于0时,只有一个实数解
else
{
printf("方程只有一个实数解:%.3f\n",realpart);
}
}
return 0;
#include <math.h> //数学函数的头文件
/***********主函数main()***********
函数说明:
用else if结构在复数范围内求解一元二次方程的根
函数功能:
实现在复数范围内求解一元二次方程的根
变量说明:
a,b,c为一元二次方程的三个系数
p为一元二次方程判别式b*b-4*a*c的结果
x1,x2为一元二次方程的两个实根 realpart,imagepart为一元二次方程的实部和虚部
函数返回值:
此处不需要返回值,因此返回值为0.
***********************************/
int main()
{
//临时变量,存放输入的系数
float a,b,c,p;
//临时变量,存放两个实根
float x1,x2;
//临时变量,存放虚部和实部
float realpart,imagepart;
printf("请输入一元二次方程的系数a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
//当a等于0并且b等于0时无解
if(0 == a && 0 == b )
{
printf("无解!");
}
//当a等于0并且b不等于0时只有一个解
else if(0 == a && 0 != b)
{
printf("方程只有一个解:%.3f\n",-c/b);
}
else
{
p = b*b - 4*a*c;
realpart = -b/(2*a);
imagepart = sqrt(fabs(p)/(2*a));
//当判别式p小于0时,有虚数解
if(p < 0)
{
printf("方程有虚数解:\n");
printf("%.3f+%.3fi\n",realpart,imagepart);
printf("%.3f+%.3fi\n",realpart,imagepart);
}
//当判别式p大于0时,有实数解
else if(p > 0)
{
x1 = realpart + imagepart;
x2 = realpart - imagepart;
printf("方程有两个实数解:\n");
printf("x1=%.3f\n",x1);
printf("x2=%.3f\n",x2);
}
//当判别式p等于0时,只有一个实数解
else
{
printf("方程只有一个实数解:%.3f\n",realpart);
}
}
return 0;
相关文章推荐
- 用else if结构在负数范围内求解一元二次方程的根
- 3-2-1 程序控制结构-while循环结构-多次求解一元二次方程?-while循环常见错误?
- 一元二次方程求解递归调用调换数组元素
- 用C求解一元二次方程的解,遇到的问题及解决办法 分类: C语言 2012-03-13 00:26 3094人阅读 评论(0) 收藏
- python定义函数求解一元二次方程
- 一元二次方程求解
- 数据结构与算法——给定整数A1,A2,....An,....(可能有负数),求该数据序列的最大子序列的和
- Java类求解一元二次方程的根
- C语言实现一元二次方程的求解
- 人工智能:复杂问题求解的结构和策略
- 求解一元二次方程组
- 数据结构(7)—栈的应用之迷宫求解
- 3----编程求解一元二次方程
- 如何证明if--else if--else结构执行顺序
- 线性代数导论8——求解Ax=b:可解性和解的结构
- 项目范围定义与创建工作结构分解
- C语言进阶-第22~23讲:问题求解的一般过程&数据结构及算法概述
- 第十二周--数据结构-图的遍历之广度优先遍历求解问题
- 数据结构之——迷宫递归求解
- 编程小练~一元二次方程求解问题