10.【中学】求解一元二次方程【北理工乐学C语言作业】

这篇文章介绍了如何使用C语言编程解决一元二次方程ax²+bx+c=0的根,包括处理特殊输入情况和计算根的公式。通过测试用例展示了程序的工作原理。
摘要由CSDN通过智能技术生成

初中的小明已经开始学习求解一元二次方程了,下面让我们来教计算机如何求解。输入 a,b,c ,求一元二次方程 ax²+bx+c=0 的根。

输入:假设 a,b,c均int。

输出:要求输出的根为 double 型,保留 6 位小数。

测试用例 1
  1. 0 0 0↵
  1. Input error!↵
1秒64M0
测试用例 2
  1. 0 0 10↵
  1. Input error!↵
1秒64M0
测试用例 3
  1. 0 10 0↵
  1. x=0.000000↵
1秒64M0
#include <stdio.h>    
#include <math.h>   
int main()   
{   
 int a,b,c;   
 scanf("%d %d %d",&a,&b,&c);   
    if(a==0&&b==0)   
 printf("Input error!\n");   
  else if(a==0&&b!=0)   
    {   
  double ss =-(double)c/b;   
   printf("x=%.6lf\n",ss==0?fabs(ss):ss);   
 }   
  else   
   {   
      double Del = b*b-4*a*c,p=-b/(2.0*a),q=sqrt(fabs(Del))/(2.0*a);   
     if(Del==0)   
     printf("x1=x2=%.6lf\n",p);   
     else if(Del>0)   
      printf("x1=%.6lf\nx2=%.6lf\n",p+q,p-q);   
        else if(p!=0)   
      printf("x1=%.6lf+%.6lfi\nx2=%.6lf-%.6lfi\n",p,q,p,q);   
      else   
       printf("x1=%.6lfi\nx2=-%.6lfi\n",q,q);   
 }   
  return 0;    
}  

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值