栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

6-2 求解一元二次方程实根的函数 (10 分)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

6-2 求解一元二次方程实根的函数 (10 分)

要求计算一元二次方程ax2+bx+c=0(a=0)的根。 主函数中给出3个浮点系数a、b、c,调用函数rootOfEquation()求解方程的实根。方程的根通过指针类型的参数x1、x2传回主函数,其中x1是值较大的根,x2是值较小的根。

  1. 若方程有两个相等的实根,函数返回1;
  2. 若方程有两个不等的实根,函数返回2;
  3. 若方程无实根,函数返回0。

函数接口定义:
int rootOfEquation(double a, double b, double c, double *x1, double *x2);

裁判测试程序样例:
#include
#include
int rootOfEquation(double a, double b, double c, double *x1, double *x2);
int main()
{    double a,b,c;
     double x1,x2;
     scanf("%lf %lf %lf",&a,&b,&c);
     int flag;
     flag=rootOfEquation(a,b,c,&x1,&x2);
     if(flag==0)
         printf("方程无实根");
     else if(flag==1)
          printf("方程有两个相等的实根 x1=x2=%.2f", x1);
     else
         printf("方程有两个不等的实根 x1=%.2f,x2=%.2f", x1, x2);
     return 0;
}

输入样例:
1 3 2

结尾无空行

输出样例:
方程有两个不等的实根 x1=-1.00,x2=-2.00

结尾无空行

int rootOfEquation(double a, double b, double c, double *x1, double *x2)
{
    double z;
    z=b*b-4*a*c;
    if(z<0)
        return 0;
    else if(z==0){
        *x1=-b/(2*a);
        return 1;
    }
    else if(z>0){
        *x1=(-b+sqrt(b*b-4*a*c))/(2*a);;
        *x2=(-b-sqrt(b*b-4*a*c))/(2*a);
        return 2;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664317.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号