求一元二次方程的根

原创 2016年06月02日 10:44:11

判别一元二次方程ax^2+bx+c=0根的情况并求根。

分析:

(1)当b^2-4ac=0,方程有两个相等的实根,x1=x2=-b/2a。

(2)当b^2-4ac>0,方程有两个不相等的实根,x1=(-b+√(b^2-4ac))/(2a),x2=(-b-√(b^2-4ac))/(2a)。

(3)当b^2-4ac<0,方程有一组共轭复根。

需要注意:

(1)方程的根可能是小数,所以在定义变量时不能用整型,可以用浮点型或者double型。

(2)对于浮点变量与零值进行比较时,不能讲浮点变量用“==”或“!=”与任何数字进行比较。在其比较时采用&&(与)运算符。例如:

float d;

float z=0.0001;

if((d>-z)&&(d<z))...

(3)函数sqrt要引用头文件#include<math.h>,它只能对正数开平方。

程序代码如下:

#include<stdio.h>
#include<math.h>
#define ESP 0.000001
int main()
{
   float a,b,c;
   scanf("%f %f %f",&a,&b,&c);
   if((a<ESP)&&(a>-ESP))
   {
   printf("此方程不是一元二次方程\n");
   return 0;
   }
   else
   {
   float tmp=b*b-4*a*c;
   if((tmp<ESP)&&(tmp>-ESP))
   {
   printf("此方程有两个相等的实根\n");
   printf("x1=x2=%f\n",(-b)/(2*a));
   }
   else
   if(tmp>0.0)
   {
   printf("x1=%f\nx2=%f\n",((-b)+sqrt(tmp))/(2*a),((-b)-sqrt(tmp))/(2*a));
   }
   else
   {
   printf("此方程有一组共轭复根\n");
   }
   }
   return 0;
}


本文出自 “Stand out or Get out” 博客,请务必保留此出处http://jiazhenzhen.blog.51cto.com/10781724/1704989

HDU 4992 Primitive Roots(求出n的所有原根)

题目:Primitive Roots
  • hongrock
  • hongrock
  • 2014年09月10日 11:56
  • 1193

原根(详解+代码实现+例题+快速求解一个数的原根)

1.原根定义 假设一个数g对于P来说是原根,那么g^i mod P的结果两两不同,且有 1 简单来说,g^i mod p ≠ g^j mod p (p为素数) 其中i≠j且i, j介於1至(...
  • dreamzuora
  • dreamzuora
  • 2016年10月06日 16:59
  • 1184

原根-快速求解一个数的原根

1.原根定义 假设一个数g对于P来说是原根,那么g^i mod P的结果两两不同,且有 1 简单来说,g^i mod p ≠ g^j mod p (p为素数) 其中i≠j且i, j介於1至(...
  • zhang20072844
  • zhang20072844
  • 2013年09月10日 22:57
  • 18838

51Nod 1135-原根(快速求解一个素数的原根)

题目地址:51Nod 1135 1.原根定义:设m>1,gcd(a,m)=1,使得成立的最小的r,称为a对模m的阶。 2.定理:如果模m有原根,那么他一共有个原根。 3.定理:如果p为素数,那么...
  • u013486414
  • u013486414
  • 2015年08月19日 15:51
  • 1901

大一上学期寒假 求方程的根

问题及代码: 1048: 求方程的根 时间限制: 1 Sec  内存限制: 128 MB 提交: 1466  解决: 494 [提交][状态][讨论版] 题目描述 求方...
  • JYL1159131237
  • JYL1159131237
  • 2017年01月18日 13:23
  • 247

5-18 二分法求多项式单根

二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)0,则它在这个区间内至少存在1个根r,即f(r)=0。 二分法的步骤为: 检查区间长度,如...
  • sunhero2010
  • sunhero2010
  • 2015年10月19日 21:35
  • 2019

5-18 二分法求多项式单根 C语言版

5-18 二分法求多项式单根   (20分) 二分法求函数根的原理为:如果连续函数f(x)f(x)在区间[a, b][a,b]的两个端点取值异号,即f(a)f(b)f(a)f(b)0,则它在这...
  • qq_34270443
  • qq_34270443
  • 2016年03月20日 13:48
  • 944

牛顿法求方程根

牛顿法 维基百科,自由的百科全书 跳转至: 导航、 搜索 本条目没有列出任何参考或来源。(2013年11月23日) 维基百科所有的内容都应该可供查证...
  • BPSSY
  • BPSSY
  • 2013年12月06日 01:02
  • 1804

求一元二次方程的根

题目来源: 本题目要求一元二次方程 a*x2+b*x+c=0 的根,结果保留2位小数。 输入格式: 输入在一行中给出3个浮点系数a, b, c,中间用空格分开。 输出格式: 根据系数情况,输出...
  • ch717828
  • ch717828
  • 2015年02月05日 13:57
  • 1183

5-18 二分法求多项式单根 (20分)

5-18 二分法求多项式单根   (20分) 二分法求函数根的原理为:如果连续函数f(x)f(x)在区间[a, b][a,b]的两个端点取值异号,即f(a)f(b)f(a)f(b)0,则它在这...
  • qq_38938655
  • qq_38938655
  • 2017年07月14日 11:00
  • 199
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求一元二次方程的根
举报原因:
原因补充:

(最多只允许输入30个字)