题解1122:【C语言训练】亲密数 (C语言描述) 浏览:626 赞:1 |
关于逻辑非“!”与取反“~”运算符 浏览:775 赞:1 |
题解1045:C语言程序设计教程(第三版)课后习题10.3 (Java描述) 浏览:268 赞:0 |
题解1022:C语言程序设计教程(第三版)课后习题7.1 (C语言描述) 浏览:314 赞:0 |
题解1012:C语言程序设计教程(第三版)课后习题6.2 (C语言描述) 浏览:314 赞:1 |
解题思路:
注意事项:
参考代码:
#include<stdio.h> #include<math.h> double greater(double tmp, double a) { return sqrt(tmp)/a/2; } double equal(double a, double b) { return -b/a/2; } double less(double tmp, double a) { return sqrt(-tmp)/a/2; } int main(void) { double a, b, c, tmp; scanf("%lf%lf%lf", &a, &b, &c); tmp = b*b - 4*a*c; if(tmp > 0) printf("x1=%.3lf x2=%.3lf\n", -b/a/2 - greater(tmp, a), -b/a/2 + greater(tmp, a)); else if(tmp == 0) printf("x1=%.3lf x2=%.3lf\n", equal(a, b), equal(a, b)); else printf("x1=%.3lf+%.3lfi x2=%.3lf-%.3lfi\n", -b/a/2, less(tmp, a), -b/a/2, less(tmp, a)); return 0; }