求一元二次方程ax2+bx+c=0的根。
提示:需要判别b2-4ac大于0,小于0和等于0的情况
提示:需要判别b2-4ac大于0,小于0和等于0的情况
#include"stdio.h"
#include"math.h"doubledisc,p,q;
voidroot(doublea,doubleb,doublec){
disc=b*b-4*a*c;p=-b/2/a;
if(disc>0)q=sqrt(disc)/2/a;
elseq=sqrt(-disc)/2/a;
}intmain()
{doublea,b,c;
printf("请输入一元二次方程的三个系数:");scanf("%lf%lf%lf",&a,&b,&c);
root(a,b,c);if(disc==0)
printf("一元二次方程有两个相等的实根:x1=x2=%.2lf\n",p);elseif(disc>0)
printf("一元二次方程有两个实根:x1=%.2lf,x2=%.2lf\n",p+q,p-q);else
printf("一元二次方程有两个复数根:x1=%.2lf+%.2lfi,x2=%.2lf-%.2lfi\n",p,fabs(q),p,fabs(q));return0;
}
#include"math.h"doubledisc,p,q;
voidroot(doublea,doubleb,doublec){
disc=b*b-4*a*c;p=-b/2/a;
if(disc>0)q=sqrt(disc)/2/a;
elseq=sqrt(-disc)/2/a;
}intmain()
{doublea,b,c;
printf("请输入一元二次方程的三个系数:");scanf("%lf%lf%lf",&a,&b,&c);
root(a,b,c);if(disc==0)
printf("一元二次方程有两个相等的实根:x1=x2=%.2lf\n",p);elseif(disc>0)
printf("一元二次方程有两个实根:x1=%.2lf,x2=%.2lf\n",p+q,p-q);else
printf("一元二次方程有两个复数根:x1=%.2lf+%.2lfi,x2=%.2lf-%.2lfi\n",p,fabs(q),p,fabs(q));return0;
}
举一反三
- 求ax2+bx+c=0方程的根。编程时有几种可能: 1)a=0,不是二次方程。 2)b2-4ac=0,有两个相等实根。 3)b2-4ac>0,有两个不等实根。 4)b2-4ac<0,有两个共轭复根
- 编程求一元二次方程ax2+bx+c=0的根,由键盘输入a、b、c,假设a、b、c为整数,且满足条件a≠0,b2-4ac>0。(2为平方格式)
- 一元二次方程ax2+bx+c=0(a≠0)有两个不相等的实根,则b2-4ac满足的条件是______. A: b2-4ac=0 B: b2-4ac>0 C: b2-4ac<0 D: b2-4ac≥0
- 编写程序求ax2+bx+c=0方程的根,要求b2-4ac≥0。______
- 求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac>0,等于0和小于0的根并输出结果.从主函数输入a,b,c的值
内容
- 0
若一元二次方程ax2+bx+c=0中的a=2,b=0,c=-1,则这个一元二次方程是( ) A: 2x2+1=0 B: 2x2-1=0 C: 2x2+x=0 D: 2x2-x=0
- 1
在一元二次方程ax2+bx+c=0(a≠0)中,若ac<0,则方程( )。 A: 有两个不相等的实数根 B: 没有实数根 C: 有两个相等的实数根 D: 根的情况还要由b确定
- 2
求一元二次方程ax2+bx+c=0的两个实数根,要求:a、b、c由键盘输入,且a≠0且b*b-4*a*c>;0。
- 3
实习题目1:求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0、等于0和小于0是的根并输出结果。从主函数输入a、b、c的值。 请把本题程序执行结果图(截屏)粘贴进来。
- 4
实习题目1:求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0、等于0和小于0是的根并输出结果。从主函数输入a、b、c的值。 请画出流程图(用拍照或截图等方法回答本题)。