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

C语言编程实例

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

C语言编程实例

C语言编程实例–求一元二次方程的根
  • 题目2:求方程的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。
//输入
4 1 1
//输出
x1=-0.125+0.484i x2=-0.125-0.484i

考虑三种情况:

  • 大于0时,有两个实根x1,x2;
  • 小于0时,有两个共轭复根x1,x2;
  • 等于0时,有一个根;

回忆公式:

  • 两个实根:
    x1=(-b)+sqrt(bb-4ac)/(2a)
    x2=(-b)-sqrt(bb-4ac)/(2a);
  • 共轭复根:
    x1=(-b)/(2a)+sqrt(-bb+4ac)/(2a)
    x2=(-b)/(2a)-sqrt(-bb+4ac)/(2a)
  • 一个实根:
    x=(-b)/(2a)

代码实现

#include 
#include 

void more(double a,double b,double c)
{
    //有两个实根
    double x1;
    double x2;
    double num = b*b-4*a*c;
    x1 = (-b+sqrt(num))/(2*a);
    x2 = (-b-sqrt(num))/(2*a);
    printf("x1=%.3lf x2=%.3lf ",x1,x2);
}

void equal(double a,double b)
{
    //有一个实根
    double x ;
    x = (-b)/(2*a);
    printf("x=%.3lf",x);
}

void less(double a,double b,double c)
{
    //有两个共轭复根
    double x1;
    double x2;
    double num1;
    num1 = b*b-4*a*c;
    x1 = (-b)/(2*a);
    x2 = sqrt(-num1)/(2*a);
    printf("x1=%.3lf+%.3lfi x2=%.3lf-%.3lfi",x1,x2,x1,x2);
}

int main()
{
    double a;
    double b;
    double c;
    double sum ;
   
    scanf("%lf %lf %lf",&a,&b,&c);

    sum = b*b-4*a*c;
    //分类计算根值
    if(sum>0)
    {
        more(a,b,c);
    }else if(sum==0)
    {
        equal(a,b);
    }else
    {
        less(a,b,c);
    }
    return 0;
}

运行结果

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

运行结果

4 8 4
x=-1.000

运行结果

8 9 9
x1=-0.562+0.899i x2=-0.562-0.899i

题目:C语言网

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

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

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