【假期练习2.6】一元二次方程全解

上机内容:

一元二次方程全解

上机目的:

掌握简单C程序的编辑

我的程序:

/*
* 程序的版权和版本声明部分:
* Copyright (c) 2020, 烟台大学计算机学院
* All rights reserved.
* 文件名称:略 
* 作    者:任康洁
* 完成日期:2020 年 2 月 6 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:无 
* 输入描述:无
* 问题描述:
有一方程ax^2+bx+c=0,a,b,c的值由键盘输入,请编程序,打印出以下情况时方程的解。
(1) a=0,b≠0时, 解为-c/b
(2) a=0,b=0,c=0, 解为任意值 
(3) a=0,b=0,c≠0, 无解
(4) a≠0,b^2-4ac≥0, 有两个实根
(5) a≠0,b^2-4ac≤0, 有两个虚根
* 程序输出:略 
* 问题分析:略
* 算法设计:略
*/
#include<stdio.h>
#include<math.h>
int main()
{
 float a,b,c,x1,x2,x,dr;
 scanf("%f%f%f",&a,&b,&c);
 dr=b*b-4*a*c;
 if(a==0){
  if(b!=0)printf("%f",-c/b);
  else if(c==0)printf("x为任意值");
  else printf("x无解"); 
 }else{
  if(dr>=0){
   x1=(-b+sqrt(dr))/2*a;
   x2=(-b-sqrt(dr))/2*a;
   printf("%.2f %.2f",x1,x2);
  }else{
   printf("x1=%.2f+%.2fi ",-b/2*a,sqrt(-dr)/2*a);
   printf("x2=%.2f-%.2fi ",-b/2*a,sqrt(-dr)/2*a);
  }
 }
 return 0;
}         

运行结果:

心得体会:

知识点总结:

求虚根:(-b±√(-Δ)i)/2a

发布了10 篇原创文章 · 获赞 2 · 访问量 250

猜你喜欢

转载自blog.csdn.net/littlelittleR/article/details/104193980
今日推荐