【题目链接】

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

【题目考点】

1. 一元二次方程求根

包括求实根与虚根

2. if…else if…else语句

3. 浮点数比较

【解题思路】

首先求Δ=b2−4ac\Delta = b^2-4acΔ=b2−4ac,

  • 如果Δ\DeltaΔ为0,输出两个相等的根;
  • 如果Δ\DeltaΔ大于0,输出两个不等的实根,先输出较大实根,再输出较小实根。
  • 如果Δ\DeltaΔ小于0,输出两个虚根。先输出虚部系数较大的虚根,再输出虚部系数较小的虚根。

【题解代码】

解法1:

#include<bits/stdc++.h>
using namespace std;
int main()
{double a, b, c;cin>>a>>b>>c;double delta = b*b - 4*a*c;if(fabs(delta) < 0.00001)//如果delta为0,输出相等的实根 printf("x1=x2=%.5f", -b/(2*a));else if(delta > 0)//输出不同的实根{double x_small = (-b-sqrt(delta))/(2*a);//x_small保存较小的实根 double x_big = (-b+sqrt(delta))/(2*a);//x_big保存较大的实根 if(x_small > x_big)//刚刚求出的x_small与x_big没有确定的大小关系,此处操作可以使得x_small一定小于x_big {//如果x_small大于x_big,那么将二者交换。 double temp = x_small;x_small = x_big;x_big = temp;}printf("x1=%.5f;x2=%.5f", x_big, x_small);//先输出较大实根,再输出较小实根 }else//输出虚根 {double shibu = -b/(2*a), xubu = sqrt(4*a*c-b*b)/(2*a);if(fabs(shibu) < 0.00001)//如果实部很接近0,将其赋值为0。如果不这样做会由于系统误差导致输出的shibu不为0. shibu = 0;printf("x1=%.5f+%.5fi;x2=%.5f-%.5fi",shibu, xubu, shibu, xubu);//实部为0也不可省略 } return 0;
}

OpenJudge NOI 1.4 20:求一元二次方程的根相关推荐

  1. 20:求一元二次方程的根

    原题链接 总时间限制:  1000ms  内存限制:  65536kB 描述 利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4* ...

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

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

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

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

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

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

  5. C语言小白初试 7-1 求一元二次方程的根 (20 分)

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

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

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

  7. 例题(8.3) 求一元二次方程的根 (1051)

    题目 - 例题(8.3) 求一元二次方程的根 (1051)   来源 计算概论05 描述 利用公式  x1 = (-b + sqrt(b*b-4*a*c))/(2*a)  x2 = (-b - sqr ...

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

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

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

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

最新文章

  1. python22期_python学习第22期
  2. 拷贝构造函数的参数类型必须是引用
  3. 28335的CPU定时器解析
  4. 夺命雷公狗---DEDECMS----26dedecms面包屑导航的实现
  5. 【蓝桥杯官网试题 - 算法提高 】求最大值 (dp,0-1背包)
  6. Different Integers
  7. matlab2c使用c++实现matlab函数系列教程-asin函数
  8. sql server 跨服务器查询数据
  9. os.system 获取打印值_react获取触发元素的属性 e.target.dataset
  10. Java流(Stream)、文件(File)相关功能 ——菜鸟教程
  11. 黑苹果E430c, 安装过程
  12. MATLAB---绘制三维图形函数实例介绍
  13. 手机WIFI传文件到局域网服务器,iOS 设备实现wifi局域网传输文件到iphone
  14. 1389: 程序员PIPI II
  15. java jtextarea 事件_JTextArea事件处理
  16. 初学者怎么学习网页设计
  17. CSMA/CA与CSMA/CD的区别
  18. 解决QDialogButtonBox按钮的英文翻译问题
  19. 数据库的文件服务器配置,服务器数据库文件配置
  20. 一句代码将OpenCV的Mat对象的数据打印输出

热门文章

  1. linux的initrd.img的解压和打包
  2. cocos2d-x多分辨率自适配及因此导致的CCListView的bug修复
  3. 苹果 M1 “痛失” Windows 11!
  4. 终于有人把内卷和囚徒困境讲明白了
  5. 给你多少钱,你才会愿意为国家生孩子?
  6. 小米上市破发,其生态内部的隐患终于显露了?
  7. uboot主Makefile分析
  8. java 可选参数_超干货详解:kotlin(4) java转kotlin潜规则
  9. 从国内的996,到美国的朝9晚5,真的这么惬意吗?
  10. 开发10年,全记在这本Java进阶宝典里了!