解题必备知识:
求一元二次方程组的方法,当δ小于0时,得到共轭复数,公式为
注意这里的根号下内容要改成原来的负数
注意事项:
本人调试中出现的一些错误:
①函数在复制之后忘记改名,其中的1 2 3有重名
②s只能在主函数里使用,在其他小函数里可以重新定义一个,但用不了主函数的s
③在计算表达式时注意括号要正确使用,有时候不加括号得到的值和加了完全不一样,在浮点型运算中尤为常见,很容易导致错误
参考代码:
/*求方程的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根 并输出结果,从主函数输入a、b、c的值 求根:(-b±根号下δ)/2,δ=b*b-4*a*c; 要三个函数实现 */ #include<stdio.h> #include<math.h> void fun1(float a,float b,float c); void fun2(float a,float b,float c); void fun3(float a,float b,float c); int main() { float a,b,c,s; scanf("%f %f %f",&a,&b,&c); s=b*b-4*a*c; if(s>0)fun1(a,b,c); if(s==0)fun2(a,b,c); if(s<0)fun3(a,b,c); return 0; } void fun1(float a,float b,float c) { float x1,x2; x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("x1=%.3f x2=%.3f",x1,x2); } void fun2(float a,float b,float c) { float x1,x2; x1=(-b)/(2*a); x2=x1; printf("x1=%.3f x2=%.3f",x1,x2); } void fun3(float a,float b,float c) { float m,n; m=(-b)/(2*a); n=sqrt(-(b*b-4*a*c))/(2*a); printf("x1=%.3f+%.3fi x2=%.3f-%.3fi",m,n,m,n); }
0.0分
0 人评分
【回文数(二)】 (C++代码)浏览:932 |
printf基础练习2 (C语言代码)浏览:955 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1292 |
1392题解(大数相加)浏览:640 |
母牛的故事 (C语言代码)浏览:519 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:725 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:760 |
简单的a+b (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:744 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:479 |