博客
关于我
计算一元二次方程
阅读量:58 次
发布时间:2019-02-25

本文共 1376 字,大约阅读时间需要 4 分钟。

计算一元二次方程的根

问题描述

编写一个程序,接受一行输入,包含三个浮点数a, b, c,表示一元二次方程ax² + bx + c = 0的系数。根据a的值判断方程的类型,并计算根的情况。

输入描述

输入是一行,包含三个浮点数a, b, c,以空格分隔。

输出描述

对于每组输入,输出一元二次方程ax² + bx + c = 0的根的情况:

  • 如果a = 0,输出“Not quadratic equation”;
  • 如果a ≠ 0,根据判别式△ = b² - 4ac的值:
    • △ = 0,输出两个相等的实根;
    • △ > 0,输出两个不等的实根;
    • △ < 0,输出两个复数根,格式为“x1=实部-虚部i;x2=实部+虚部i”。

所有实数部分精确到小数点后2位,数字和符号之间无空格。

代码实现

#include 
#include
int main() { float a, b, c; while (scanf("%f %f %f", &a, &b, &c) != EOF) { double discriminant = b * b - 4 * a * c; if (a == 0) { printf("Not quadratic equation"); } else { if (discriminant == 0) { double x = (-b) / (2 * a); printf("x1=x2=%.2f", x); } else if (discriminant > 0) { double x1 = (-b - sqrt(discriminant)) / (2 * a); double x2 = (-b + sqrt(discriminant)) / (2 * a); printf("x1=%.2f;x2=%.2f", x1, x2); } else { double real_part = (-b) / (2 * a); double imaginary_part = sqrt(-discriminant) / (2 * a); printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi", real_part, imaginary_part, real_part, imaginary_part); } } printf("\n"); } return 0;}

运行结果

程序运行时,输入一行三个浮点数,输出相应的方程根情况。例如,输入“1 2 3”会输出x1=1.00;x2=3.00,输入“1 -2 -3”会输出x1=1.00;x2=1.00,输入“2 4 8”会输出x1=1.00-2.00i;x2=1.00+2.00i。

转载地址:http://jko.baihongyu.com/

你可能感兴趣的文章
nginx负载均衡的5种策略(转载)
查看>>
nginx负载均衡的五种算法
查看>>
Nginx负载均衡(upstream)
查看>>
nginx转发端口时与导致websocket不生效
查看>>
Nginx运维与实战(二)-Https配置
查看>>
Nginx部署_mysql代理_redis代理_phoenix代理_xxljob代理_websocket代理_Nacos代理_内网穿透代理_多系统转发---记录021_大数据工作笔记0181
查看>>
Nginx配置Https证书
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置后台网关映射路径
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置多个不同端口服务共用80端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-动静分离实例:搭建静态资源服务器
查看>>