博客
关于我
计算一元二次方程
阅读量: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/

你可能感兴趣的文章
mysql 常用命令
查看>>
Mysql 常见ALTER TABLE操作
查看>>
MySQL 常见的 9 种优化方法
查看>>
MySQL 常见的开放性问题
查看>>
Mysql 常见错误
查看>>
mysql 常见问题
查看>>
MYSQL 幻读(Phantom Problem)不可重复读
查看>>
mysql 往字段后面加字符串
查看>>
mysql 快速自增假数据, 新增假数据,mysql自增假数据
查看>>
Mysql 批量修改四种方式效率对比(一)
查看>>
Mysql 报错 Field 'id' doesn't have a default value
查看>>
MySQL 报错:Duplicate entry 'xxx' for key 'UNIQ_XXXX'
查看>>
Mysql 拼接多个字段作为查询条件查询方法
查看>>
mysql 排序id_mysql如何按特定id排序
查看>>
Mysql 提示:Communication link failure
查看>>
mysql 插入是否成功_PDO mysql:如何知道插入是否成功
查看>>
Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
查看>>
mysql 数据库中 count(*),count(1),count(列名)区别和效率问题
查看>>
mysql 数据库备份及ibdata1的瘦身
查看>>
MySQL 数据库备份种类以及常用备份工具汇总
查看>>