解题思路:
1.输入三个数,分别代表a b c
2.设定deta变量是判别式
3.deta>=0 在实数范围内,直接公式计算
4.deta<0 在虚数范围内,先计算实数部分(-b/(2*a)) 再加上/减去 虚数部分(sqrt(-deta)/(2*a)
5.输出x1 x2
注意事项:
1.虚数部分的计算 是sqrt(-deta) 记住这里是负号!
2.虚数输出的时候 是实数加上虚数部分 所以实数和虚数部分 用两个变量来存放。
3.虚数部分输出的最后还要添加一个i
参考代码:
#include<stdio.h> #include<math.h> int main() { double a,b,c,x1,x2,t; scanf("%lf%lf%lf",&a,&b,&c); double deta=b*b-4*a*c; if(deta>=0) { x1=(-b-pow(deta,0.5))/2*a; x2=(-b+pow(deta,0.5))/2*a; printf("x1=%.3f x2=%.3f",x1,x2); } else { x1=(-b)/(2*a); x2=(-b)/(2*a); t=sqrt(-deta)/(2*a); printf("x1=%.3f+%.3fi x2=%.3f-%.3fi",x1,t,x2,t); } return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:1071 |
2^k进制数 (C++代码)使用递归方法浏览:722 |
简单的a+b (C语言代码)浏览:652 |
Biggest Number (C++代码)回溯法浏览:1614 |
九宫重排 (C++代码)浏览:1336 |
C语言训练-角谷猜想 (C语言代码)浏览:1708 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:575 |
本人酷爱递归实现很多问题,这里也是浏览:557 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:350 |
C语言训练-数字母 (C语言代码)浏览:608 |