上机内容:
一元二次方程全解
上机目的:
掌握简单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