题目 - 例题(8.3) 求一元二次方程的根 (1051)  
来源 计算概论05
描述
利用公式 
x1 = (-b + sqrt(b*b-4*a*c))/(2*a) 
x2 = (-b - sqrt(b*b-4*a*c))/(2*a) 
求一元二次方程 ax2 + bx + c = 0 的根,其中a不等于0。
关于输入
第一行是待解方程的数目n。 其余n行每行含三个浮点数a, b, c(它们之间用空格隔开),分别表示方程ax2 + bx + c =0的系数
关于输出
输出共有n行,每行是一个方程的根: 
若是两个实根,则输出:x1=...;x2 = ... 
若两个实根相等,则输出:x1=x2=... 
若是两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i

所有实数部分要求精确到小数点后5位,数字、符号之间没有空格

例子输入
31.0 3.0 1.02.0 -4.0 2.01.0 2.0 8.0
例子输出
x1=-0.38197;x2=-2.61803x1=x2=1.00000x1=-1.00000+2.64575i;x2=-1.00000-2.64575i
提示
1、需要严格按照题目描述的顺序求解x1、x2。 
2、方程的根以及其它中间变量用double类型变量表示。 
3、函数sqrt()在头文件math.h中。 
4、要输出浮点数、双精度数小数点后5位数字,可以用下面这种形式:printf("%.5f", num); 
注意,在使用Java做此题时,可能会出现x1或x2等于-0的情形,此时,需要把负号去掉,同样的问题也可能出现在C中(这是因为c标准不同的问题,大家用的编译器很可能是vc6自带的,而网站使用的编译器是gcc,所以会有所不同,请大家注意判断。)
     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

#include <stdio.h>
#include <math.h>
#include <float.h>int main()
{int n;scanf("%d", &n);while(n--){double a, b, c;double dt, x;scanf("%lf%lf%lf", &a, &b, &c);dt = b*b - 4*a*c;x = -b/(2*a);if(fabs(x) < DBL_EPSILON){x = 0.0;}if(fabs(dt) < DBL_EPSILON) /* dt`=0 */{printf("x1=x2=%.5lf\n", x);}else{double dx = sqrt(fabs(dt))/(2*a);if(dt > 0){printf("x1=%.5lf;x2=%.5lf\n", x + dx, x - dx);}else /* if(dt < 0) */{printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi\n", x, dx, x, dx);}}}return 0;
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

#include <stdio.h>
#include <math.h>
#include <float.h>int main()
{int n;scanf("%d", &n);while(n--){double a, b, c;double dt, x;scanf("%lf%lf%lf", &a, &b, &c);dt = b*b - 4*a*c;x = -b/(2*a);if(fabs(x) < DBL_EPSILON){x = 0.0;}if(fabs(dt) < DBL_EPSILON) /* dt`=0 */{printf("x1=x2=%.5lf\n", x);}else{double dx = sqrt(fabs(dt))/(2*a);if(dt > 0){printf("x1=%.5lf;x2=%.5lf\n", x + dx, x - dx);}else /* if(dt < 0) */{printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi\n", x, dx, x, dx);}}}return 0;
}

例题(8.3) 求一元二次方程的根 (1051)相关推荐

  1. 25268 Problem E 例题3-5 求一元二次方程的根

    问题 E: 例题3-5 求一元二次方程的根 时间限制: 1 Sec  内存限制: 128 MB 题目描述 求一元二次方程ax2+bx+c=0的根,三个系数a, b, c由键盘输入,且a不能为0,且保证 ...

  2. 计算概论(A)/基础编程练习1(8题)/4:求一元二次方程的根

    1 #include<stdio.h> 2 #include<math.h> 3 int main() { 4 // 待解方程数目 5 int n; 6 scanf(" ...

  3. OpenJudge NOI 1.4 20:求一元二次方程的根

    [题目链接] OpenJudge NOI 1.4 20:求一元二次方程的根 [题目考点] 1. 一元二次方程求根 包括求实根与虚根 2. if-else if-else语句 3. 浮点数比较 [解题思 ...

  4. 7-157 求一元二次方程的根 (20 分)

    7-157 求一元二次方程的根 (20 分) 本题目要求一元二次方程ax2+bx+c=0的根,结果保留2位小数. 输入格式: 输入在一行中给出3个浮点系数a.b.c,中间用空格分开. 输出格式: 根据 ...

  5. c语言学习-求一元二次方程的根

    求一元二次方程的根 程序流程图: 代码: #include<stdio.h> #include<math.h> void main() {float a,b,c,s,x1,x2 ...

  6. 实验3-1 求一元二次方程的根 (20 分)

    实验3-1 求一元二次方程的根 (20 分) 本题目要求一元二次方程ax^2+bx+c=0的根,结果保留2位小数. 输入格式: 输入在一行中给出3个浮点系数a.b.c,中间用空格分开. 输出格式: 根 ...

  7. Python 求一元二次方程的根(包括虚根)

    如图所示,求一元二次方程的根(包括虚根),代码如下: import math a = float(input()) b = float(input()) c = float(input()) delt ...

  8. Java求一元二次方程的根

    求一元二次方程的根. [问题描述]编写程序,从键盘输入三个系数ax2+bx+c=0,计算方程的解并输出.需要考虑方程有虚根.方程有实根.方程是一元一次方程.没有根等.输出方程的解并保留6位小数. im ...

  9. 7-1 求一元二次方程的根 (20 分)

    7-1 求一元二次方程的根 (20 分) #include "stdafx.h" #include "math.h" int _tmain(int argc, ...

最新文章

  1. java 容器_Java容器框架学习整理
  2. Net编程 详解DataTable用法【转】
  3. python 扑克牌中的顺子
  4. java责任链设计模式_Java中的责任链设计模式
  5. linux下expect命令实现批量ssh免密
  6. utf8 和utf8mb4 的区别
  7. Office365下部署SharePoint站点集
  8. 最小二乘法 c 语言程序,最小二乘法采用C语言.docx
  9. 扇贝有道180914每日一句
  10. the problem was occurred when start ADT
  11. 维修电工技师、高级技师技能实训考核装置
  12. 使用POI编译word—删除WORD空白段落
  13. java计算机毕业设计直播购物平台源码+数据库+系统+lw文档
  14. 甜糖官方爱快docker
  15. 十年带队经验,万字长文分享:如何管理好一个程序员团队?
  16. 32位(x86)和64位(x64)
  17. Java字节码,字节码指令
  18. 回顾 Exchange 2007 SCC 安装-供需要的人参考!
  19. 如何打开mcp为后缀的文档(昆仑通态 人机界面HMI,配合PLC)
  20. 关于回波损耗 和 驻波比的摘要 Return Loss and VSWR

热门文章

  1. struct所占的内存
  2. 20190927CF训练
  3. IOS开发之——手动设置屏幕旋转
  4. VPN的搭建与使用--CentOS7.9(OpenVpn环境配置)
  5. Python开发【项目】:生产环境下实时统计网站访问日志信息
  6. 真我Realme GT Neo5有无线充电吗? 真我Realme GT Neo5快充速度是多少瓦?
  7. 算法笔记胡凡 第3章 入门篇
  8. 【3D建模】Solidworks 3D建模及PrusaSlicer切片打印学习笔记
  9. STM32Cube程序使用 DFU 烧写后Leave DFUMode无法运行程序
  10. 2018FME博客大赛-基于FME的不同比例尺线面要素 一致性检测关键技术研究