本题目要求一元二次方程的根,结果保留2位小数。

输入格式:

输入在一行中给出3个浮点系数a、b、c,中间用空格分开。

输出格式:

根据系数情况,输出不同结果:

1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;

2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;

3)如果方程只有一个根,则直接输出此根;

4)如果系数都为0,则输出"Zero Equation";

5)如果a和b为0,c不为0,则输出"Not An Equation"。

输入样例1:

2.1 8.9 3.5

输出样例1:

-0.44
-3.80

输入样例2:

1 2 3

输出样例2:

-1.00+1.41i
-1.00-1.41i

输入样例3:

0 2 4

输出样例3:

-2.00

输入样例4:

0 0 0

输出样例4:

Zero Equation

输入样例5:

0 0 1

输出样例5:

Not An Equation
按求根公式来,但注意纯虚根不要在0前加负号。
代码:
#include <stdio.h>
#include <math.h>
int main() {
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
if(a == && b == && c == ) printf("Zero Equation\n");
else if(a == && b == && c != ) printf("Not An Equation\n");
else if(a == ) printf("%.2f\n",-c / b);
else {
double det = b * b - * a * c,aa = a * ;
if(det == ) printf("%.2f\n",-b / aa);
else if(det > ) printf("%.2f\n%.2f\n",(-b + sqrt(det)) / aa,(-b - sqrt(det)) / aa);
else printf("%.2f+%.2fi\n%.2f-%.2fi\n",(b == ? b : -b) / aa,sqrt(-det) / aa,(b == ? b : -b) / aa,sqrt(-det) / aa);
}
return ;
}

实验3-1 求一元二次方程的根 (20 分) 《C语言程序设计实验与习题指导(第3版)》的更多相关文章

  1. OpenJudge计算概论-求一元二次方程的根【含复数根的计算、浮点数与0的大小比较】

    /*====================================================================== 求一元二次方程的根 总时间限制: 1000ms 内存限 ...

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

    #include<stdio.h> #include<math.h> int main() { // 待解方程数目 int n; scanf("%d", & ...

  3. 基于linux或windows的c/s的循环服务器求一元二次方程的根

    在linux和windows上实现 c/s模式 socket循环服务器求解一元二次方程的根 ax^2+bx+c=0 根据上式,客户端发送a,b,c给服务器,返回求解的根 暂未考虑非法数据等问题 lin ...

  4. Openjudge-计算概论(A)-求一元二次方程的根

    描述: 利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2 + bx + c =0的根 ...

  5. C++分支结构,求一元二次方程的根

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

  6. 求一元二次方程的根【double型的0输出%.2lf为-0.00】

    #include <bits/stdc++.h> using namespace std; #define LL long long #define eps 1e-6 int main() ...

  7. ocrosoft 1015 习题1.22 求一元二次方程a*x^2 + b*x + c = 0的根

    http://acm.ocrosoft.com/problem.php?id=1015 题目描述 求一元二次方程a*x2 + b*x + c = 0的根.系数a.b.c为浮点数,其值在运行时由键盘输入 ...

  8. 用c#求一元二次方程

    题目:编一个程序,输入a .b.c 的值,求出一元二次方程a*x*x+b*x+c=0的二个实数根. 我的思路: 我们都知道数学中求一元二次方程有很多方法:直接开方法.配方法.公式法.分解因式法等等,在 ...

  9. 【Python实践-1】求一元二次方程的两个解

    知识点: import sys, sys模块包含了与Python解释器和它的环境有关的函数. “sys”是“system”的缩写.sys.exit() 中途退出程序, (注:0是正常退出,其他为不正常 ...

随机推荐

  1. 配置tomcat服务器内存大小中的Xms、Xmx、PermSize、MaxPermSize 详解

    1.参数的含义 -vmargs -Xms256m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512M -vmargs 说明后面是VM的参数,所以后面的其实都 ...

  2. QuantLib 金融计算——基本组件之 ExchangeRate 类

    目录 QuantLib 金融计算--基本组件之 ExchangeRate 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件 ...

  3. nginx开启gzip的方法

    nginx开启gzip的方法 1.vi打开Nginx配置文件 <pre>vi /usr/local/nginx/conf/nginx.conf</pre> 2.找到如下一段,进 ...

  4. slf4j log4j logback

    最先大家写日志都用log4j,后来作者勇于创新,又搞了个logback,又为了统一江湖,来了个slf4j,所以目前在代码中进行日志输出,推荐使用slf4j,这样在运行时,你可以决定到底是用log4j还 ...

  5. [转帖]Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31

    Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31 https://www.kubernetes.org.cn/6252.html 2019-12-13 11:59 ali ...

  6. Java学习:等待唤醒机制

    等待唤醒机制 线程的状态 NEW   至今尚未启动的线程处于这种状态 RUNNABLE   正在Java虚拟机中执行的线程处于这种状态 BLOCKED 受阻塞并等待某个监视器锁的线程处于这种状态 WA ...

  7. Java学习:接口(interface)的使用于注意事项

    接口 接口就是一种公共的规范标准.只要符合规范标准,就可以大家通用. 接口就是多个类的公共规范.接口是一种引用数据类型,最重要的内容就是其中的:抽象方法. 如何定义一个接口的格式 如何定义一个接口的格 ...

  8. Linux学习笔记之安装报错/lib/ld-linux.so.2: bad ELF interpreter

    0x00 64位系统中安装了32位程序解决办法 是因为64位系统中安装了32位程序 解决方法: yum install glibc.i686 0x01 解决交叉编译环境错误 yum install l ...

  9. Visual Studio 技巧

    Visual Studio 技巧 1 常用设置 2 常用快捷键 2.1 系统默认快捷键 2.2 自定义快捷键 3 修复系统错误 1 常用设置 Text Editor -> All Languag ...

  10. 推荐算法之E&E

    一.定义 E&E就是探索(explore)和利用(exploit). Exploit:基于已知最好策略,开发利用已知具有较高回报的item(贪婪.短期回报),对于推荐来讲就是用户已经发现的兴趣 ...