1028: C语言程序设计教程(第三版)课后习题8.2

本文介绍了一种使用C语言求解二次方程根的方法,通过三种不同的函数处理实根、重根和复根的情况。文章提供了完整的代码示例,包括输入系数a、b、c并输出根的具体过程。
Description
求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。
Input
a b c
Output
x1=? x2=?
Sample Input
4 1 1
Sample Output
x1=-0.125+0.484i x2=-0.125-0.484i
思路:注意当b*b-4*a*c<0时,应该是sqrt(4*a*c-b*b),并且复数加上i

#include<stdio.h>
#include<math.h>
int main()
{
    double a,b,c;
    while (scanf("%lf%lf%lf",&a,&b,&c)==3)
    {
    double x1,x2;
    double t1,t2;
    char s1='+',s2='-';
    if((b*b-4*a*c)<0)
    {    t1=-b/(2*a);
        t2=sqrt(4*a*c-b*b)/(2*a);       //复数部分
            printf("x1=%.3lf%c%.3lfi ",t1,s1,t2);
            printf("x2=%.3lf%c%.3lfi\n",t1,s2,t2);
    }
 
    else if((b*b-4*a*c)>=0)
    {
        t1=-b*1.0/(2*a);
        t2=sqrt(b*b-4*a*c)/(2*a);;
            printf("x1=%.3lf%c%.3lf ",t1,s1,t2);
            printf("x2=%.3lf%c%.3lf\n",t1,s2,t2);
    }
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/NYNU-ACM/p/4236881.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值