一元二次方程共轭复根..因为在复数范围内,根号下负数有意义 共轭复数就是说满足z1=a+bi,z2=a-bi的复数,这里i=根号下-1 在解一元二次方程的时候,b^2-4ac<0时,根号下的判别式在复数范围. 解是共轭
printf("x1=%.2lf+%.2lfi\n",p,q); //由于C无法直接计算虚数,所以只能求出虚数的实部和虚部,然后按虚数的格式输出 printf("x2=%.2lf-%.2lfi\n",p,q);
这个问题在于,当判别式<-1E-6(相当于判别式小于0),求共轭复数根时,你的x1和x2事先都是double类型(双精度浮点实数型),这个类型不能存储虚数。再加上rparti没有定义(因为系统会把rparti作为一个完整的标识符看待,所以你不能那样写)我的建议,在求共轭复根时,x1和x2就不要再表示两个根...
printf("二次方程的共轭复根为:x1=%lf+%lfi x2=%lf-%lfi\n",p,q,p,q); } return0; } c语言基础中比较经典的例子,刚做的时候,很多问题没办法独立解决。比如当遇到共轭复根时,该如何输出,解决办法就是把负根的实部与虚部分开写,具体参见上例。还有一个常识,当用到数学函数时,头文件要有(#include<...
一、求一元二次方程的解 1.题目 求一元方程ax^2+bx+c=0(a!=0)的实数根,a,b,c通过键盘输入 2.思路 解一元二次方程a不为0的时候有三种情况,一、有两个不相等的实数根;二、有两个相等的实数根;三、有两个不相等的共轭复根。使用 =b^2-4ac与0的关系来控制执行条件,再用求根公式求解(需要用求根函...
(3)当b^2- 4ac<0,方程有一组共轭复根; 3.方程的根在很多情况下是小数,因此在定义变量时不能用整型,可以用浮点型或者double型; 4.对于变量与零值进行比较时,不能讲浮点变量用“==”或“!=”与任何数字进行比较,可以使用#define 定义一个精度,在使用时只要在给定的范围内,将其近似为0; ...
2.输入1,2,2,得到两个共轭复根 3.输入2,6,1,得到两个不等的实根 if(fabs(a)<=1e-6) 判断a的值是否小于0.000001,浮点数的小数只能精确到小数点的后六位,即判断a是否等于0。 思考: if(fabs(a)<=1e-6),可以用if(a == 0)替换吗?
("方程有一个实根: %.2lf\n", root1); } else { // 两个共轭复根 realPart = -b / (2 * a); imaginaryPart = sqrt(-discriminant) / (2 * a); printf("方程有两个共轭复根: %.2lf+%.2lfi 和 %.2lf-%.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart); } return 0; }...
考虑特殊情况,如判别式小于0时输出复数根或无解提示: 在上面的代码中,我们已经考虑了判别式小于0的情况,并输出了两个共轭复根。如果判别式小于0,程序会计算复数的实部和虚部,并输出共轭复根。如果判别式大于等于0,程序会输出实根或重根。