首页 > 编程语言 >一元二次方程c++题目

一元二次方程c++题目

时间:2024-07-20 22:54:24浏览次数:16  
标签:题目 cout double 样例 c++ 一元二次方程 sqrt x2 x1

描述
利用公式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。
输入
输入一行,包含三个浮点数a,b,c(它们之间以一个空格分开),分别表示方程ax?+ bx +c=0的系数。

输出
输出一行,表示方程的解。
若b2 =4*a*c,则两个实根相等,,则输出形式为:x1=x2=.…。若b2 >4*a*c,则两个实根不等,则输出形式为:x1=...;x2 = .,其中x1>x2.若b2 <4*a*c,则有两个虚根,则输出:x1=实部+虛部i;x2=实部-虚部i,即x1的虚部系数大于等于x2的虚部系数,实部为0时不可省略。实部=-b/(2*a),虛部= sqrt(4*a*c-b*b)/(2*a)
所有实数部分要求精确到小数点后5位,数字、符导之间没有空格,
样例输入


样例输入1
1.0 2.0 8.0
样例输入2
1 0 1


样例输出


样例输出1
x1=-1.00000+2.64575i;x2=-1.00000-2.64575i
样例输出2
x1=0.00000+1.00000i;x2=0.00000-1.00000i

答案: 

#include<iostream>
 #include<cmath>
 #include<iomanip>
 #include <cstdio>
 using namespace std;
 int main()
 {
     double a,b,c;
     cin>>a>>b>>c;
     double d=b*b-4*a*c;
     double e=sqrt(d);
     double x1=(-b+e)/(2*a);
     double x2=(-b-e)/(2*a);
    if(d==0)
     {
         cout<<setprecision(5)<<fixed<<"x1=x2="<<x1;
     }
     else if (d>0)
     {
         if (a>0)
         {
             cout << setprecision(5) << fixed << "x1=" << x1 << ";" << "x2=" << x2;
         }
         else
         {
             cout << setprecision(5) << fixed << "x2=" << x2 << ";" << "x1=" << x1;
         }
     }
     else
     {
         double m, n;
         double esp = pow(10, -7);
        m = -b / (2 * a) + esp;
         n = sqrt(-d) / (2 * a);         
         printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi\n", m, n, m, n);
         /*e = sqrt(-d);
         double x3 = -b / 2.0 / a;
         double x4 = e / 2.0 / a;
         if (b==0)
         {
             x3 = 0;
         }
         if (a>0)
         {
             cout << setprecision(5) << fixed << "x1=" << x3 << "+" << x4 << "i" << ";" << "x2=" << x3 << "-" << x4 << "i" << endl;
       } 
         else        
         {
            cout<<setprecision(5)<< fixed<<"x1="<<x3<<"+"<<-x4<<"i"<<";"<<"x2="<<x3<<x4<<"i"<<endl;
         }*/
 
         
     }
 
     return 0;
 }

标签:题目,cout,double,样例,c++,一元二次方程,sqrt,x2,x1
From: https://blog.csdn.net/2301_78933131/article/details/140573684

相关文章

  • Linux C++ 065-设计模式之组合模式
    LinuxC++065-设计模式之组合模式本节关键字:Linux、C++、设计模式、组合模式相关库函数:概念组合模式(CompositePattern),又叫做部分-整体模式,使得用户对单个对象和组合对象的使用具有一致性。它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理......
  • Linux C++ 066-设计模式之访问者模式
    LinuxC++066-设计模式之访问者模式本节关键字:Linux、C++、设计模式、访问者模式相关库函数:概念在访问者模式(VisitorPattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模......
  • C:一些题目
     1.分数求和计算1/1-1/2+1/3-1/4+1/5……+1/99-1/100的值#include<stdio.h>intmain(){doublesum=0.0;//使用double类型来存储结果,以处理可能的小数部分intsign=1;//符号标志,初始为1表示正数for(inti=1;i<=100;i++)//......
  • C++面向对象编程的一个核心概念--RAII
    RAII是"ResourceAcquisitionIsInitialization"(资源获取即初始化)的缩写,它是C++编程中的一种编程技术,用于管理资源的生命周期。RAII是C++面向对象编程的一个核心概念,它利用对象的构造函数和析构函数来自动管理资源,如内存、文件句柄、线程、互斥锁等。RAII的主要原则包括:1.*......
  • 如何使用C++中的字符串类(如std::string)
    在C++中,std::string 类是标准模板库(StandardTemplateLibrary,STL)的一部分,它提供了对字符串的灵活处理。std::string 使得字符串的存储、操作、比较、查找等任务变得更加方便和高效。下面将介绍如何使用 std::string 类。1.包含头文件要使用 std::string,首先需要包含......
  • 掌握 C++ 异常艺术:构建健壮程序的秘诀与实战策略「一」
    以下内容为本人的烂笔头,如需要转载,请全文无改动地复制粘贴,原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/WC8CThJ77oHMsCSH0CBzsQ在过去几十年的编程历史中,异常处理的演变仿佛一场文明的进化史,它不仅仅是技术的革新,更是编程思想与哲学的深刻体现。从古早的错......
  • Android C++系列:Linux文件系统(二)
    1.VFS虚拟文件系统Linux支持各种各样的文件系统格式,如ext2、ext3、reiserfs、FAT、NTFS、iso9660等等,不同的磁盘分区、光盘或其它存储设备都有不同的文件系统格式,然而这些文件系统都可以mount到某个目录下,使我们看到一个统一的目录树,各种文件系统上的目录和文件我们用l......
  • Android C++系列:函数返回值注意事项
    1.背景函数返回值就是使用return语句终止正在执行的函数,看是很简单的问题有什么说的呢?因为越是简单的问题里面越是有一些不易发现的坑。比如在循环中使用return语句:boolfindChar(conststring&str,constcharc){autosize=str.size();for(decltype(size......
  • 【C++BFS 回溯】756. 金字塔转换矩阵
    本文涉及知识点C++BFS算法C++回溯LeetCode756.金字塔转换矩阵你正在把积木堆成金字塔。每个块都有一个颜色,用一个字母表示。每一行的块比它下面的行少一个块,并且居中。为了使金字塔美观,只有特定的三角形图案是允许的。一个三角形的图案由两个块和叠在上面的单......
  • GESP C++ 二级真题(2023年12月)T1 小杨做题
    问题描述:为了准备考试,小杨每天都要做题。第一天做了a道题;第二天做了b道题;从第三天起,小杨每天做的题目数量是前两天的总和。此外,小杨还规定当自己某一天做了大于或等于m题时,接下来的日子,他就不做题了。请问到了第n天,小杨总共做了多少道题?输入描述:总共4行。第一行一个整数a,......