OJ刷题之《求方程的根》

题目描述

求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。

输入

a b c

输出

x1=? x2=?

样例输入

4 1 1

样例输出

x1=-0.125+0.484i x2=-0.125-0.484i

提示

主函数已给定如下,提交时不需要包含下述主函数

/*  C代码或C++代码   */

int main()

{

float a,b,c,q;

void shigen(float,float,float);

void denggen(float ,float );

void xugen(float ,float ,float);

scanf("%f%f%f",&a,&b,&c); //C

//或 cin>>a>>b>>c; //C++

q=b*b-4*a*c;

if(q>0) shigen(a,b,q);

else if(q==0) denggen(a,b);

else xugen(a,b,q);

return 0;

}

代码如下:

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
void shigen(float a,float b,float c)
{
    float x1,x2;
    x1=(-b+sqrt(c))/(2*a);
    x2=(-b-sqrt(c))/(2*a);
    cout<<setiosflags(ios::fixed)<<setprecision(3);
    cout<<"x1="<<x1<<" "<<"x2="<<x2;
}
void denggen(float a,float b)
{
    float x1,x2;
    x1=x2=-b/(2*a);
    cout<<"x1="<<x1<<" "<<"x2="<<x2;
}
void xugen(float a,float b,float c)
{
    float p,q;
    p=-b/(2*a);
    q=sqrt(-c)/(2*a);
    cout<<setiosflags(ios::fixed)<<setprecision(3);
    cout<<"x1="<<p<<"+"<<q<<"i"<<" "<<"x2="<<p<<"-"<<q<<"i";
}

int main()

{

    float a,b,c,q;

    void shigen(float,float,float);

    void denggen(float ,float );

    void xugen(float ,float ,float);

    cin>>a>>b>>c;

    q=b*b-4*a*c;

    if(q>0) shigen(a,b,q);

    else if(q==0) denggen(a,b);

    else xugen(a,b,q);

    return 0;

}

运行结果:

数学没学好,还真不好学编程,我都不知道虚根的实部和虚部怎么求的,果断又问的度娘

时间: 2024-11-01 13:51:30

OJ刷题之《求方程的根》的相关文章

OJ刷题之《输出不同进制的数》

题目描述 将十进制数1234按十进制输出 将八进制数1234按八进制输出 将十六进制数1234按十六进制输出 输入 无 输出 将十进制数1234按十进制输出 将八进制数1234按八进制输出 将十六进制数1234按十六进制输出 样例输入 无 样例输出 1234=1234D 01234=1234O 0x1234=1234H 提示 使用输出格式控制符 dec     oct     hex 输出第二行 01234=1234O    1234前是数字0,1234后是大写字母O 代码如下: #includ

OJ刷题之《输出A字打头的字符串》

Description 输出n个字符串,把其中以字母A打头的字符串输出. Input 第一行 n 第二行到第n+1行,每行一个字符串 Output A打头的字符串 Sample Input 3 Ada Bob Alice SampleOutput Ada Alice 代码如下: #include <iostream> #include <cstring> using namespace std; int main() { int i,n; string str[10]; cin&g

OJ刷题常用的4中基本输入形式

初到OJ网站上刷题,输入形式就是我们要考虑的问题.通过自己的一些摸索,OJ题目的输入形式大体上无外乎4种.下面就详细介绍: 1 输入数据文件中,第一行数据标明了测试数据的数目: 2 输入数据文件中,有标明输入结束的数据 3 输入数据文件中,测试数据一直到文件尾 4 没有输入数据 第1中情形的处理方法: //int i,kase scanf("%d",&kase); for(i=1;i<=kase;i++) { //处理第i中情况 } ...................

OJ刷题之《成绩输出》

Description 输入n(<=10)个学生的姓名.学号和成绩,将其中不及格者的姓名.学号和成绩输出. Input 第一行 n 第二行到第n+1行,每行一个学生的姓名.学号和成绩. Output 不及格者的姓名.学号和成绩. Sample Input 3 zhang 1001 100 li 1002 59 sun 1003 0 SampleOutput li 1002  59 sun 1003  0 代码如下: #include <iostream> using namespace

OJ刷题之《输入三个整数,按由小到大的顺序输出》

题目描述 输入三个整数,按由小到大的顺序输出.分别使用指针和引用方式实现两个排序函数.在主函数中输入和输出数据. 输入 三个整数 输出 由小到大输出成一行,每个数字后面跟一个空格.由指针方式实现. 由小到大输出成一行,每个数字后面跟一个空格.由引用方式实现. 样例输入 2 3 1 样例输出 1 2 3 1 2 3 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C++代码 */ int main() { void sort1(int *,int *,int *); void sort2

第十五周oj刷题——Problem E: C++习题 对象数组求最大值

Description 建立一个对象数组,内放n(<10)个学生的数据(学号.成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出n个学生中成绩最高者,并输出其学号. Input n和n个学生的学号.成绩 Output 成绩最高者的学号和成绩 Sample Input 5 101 78.5 102 85.5 103 98.5 104 100.0 105 95.5 Sample Output 104 100.00 /* All rights reserved. * 文件名称:

基于C#解决OJ刷题之输入输出问题的总结(AKOJ1064-1071A+B问题汇总)

声明:题目部分为akoj题目,代码为本人AC代码. 因为本人学校的oj支持各种环境,非常正常的当中就包括了C#.然暑假在家较为空暇,本着学习C#和复习算法的态度和目的,就又開始折腾起oj了. 题目部分是最基础的A+B系列,来看看C#的输入输出是怎么一回事吧 题目地址:http://183.167.205.82:8081/JudgeOnline/problemlist?volume=1 本文由csdn-jtahstu原创.转载请注明出处,欢迎志同道合的朋友一起交流学习.本人QQ:137375842

第十五周oj刷题——Problem I: C++ 习题 比较大小-类模板

Description 声明一个类模板,利用它分别实现两个整数.浮点数和字符的比较,求出大数和小数.说明:在类模板外定义各成员函数. Input 输入两个整数.两个浮点数和两个字符 Output 从大到小输出两个整数.两个浮点数和两个字符 Sample Input 3 7 45.78 93.6 a A Sample Output 7 3 93.60 45.78 a A   /* All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年

oj刷题——第十五周C++习题 对象转换

Description 定义一个Teacher(教师)类(教师号,姓名,性别,薪金)和一个Student(学生)类(学号,姓名,性别,成绩),二者有一部分数据成员是相同的,num(号码),name(姓名),sex(性别).编写程序,将一个Student对象(学生)转换为Teacher(教师)类,只将以上3个相同的数据成员移植过去.可以设想为: 一位学生大学毕业了,留校担任教师,他原有的部分数据对现在的教师身份来说仍然是有用的,应当保留并成为其教师数据的一部分. Input 一个教师的信息和一个学

第十五周oj刷题—— Problem C: 矩形类中运算符重载【C++】

Description 定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数.输入坐标的函数,实现矩形加法,以及计算并输出矩形面积的函数.要求使用提示中给出的测试函数并不得改动. 两个矩形相加的规则是:决定矩形的对应坐标分别相加,如 左下角(1,2),右上角(3,4)的矩形,与 左下角(2,3),右上角(4,5)的矩形相加,得到的矩形是 左下角(3,5),右上角(7,9)的矩形. 这个规则没有几何意义,就这么定义好了. 输出面积的功能通过重载"<<&quo