程序代码
#include <stdio.h>
#include <math.h>
/*
*csdn学院——2016级
*文件名称:Myfun26.c
*作者:小臣小仁
*完成日期:2016年11月8日
*问题描述:有一方程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, 有两个虚根
*/
int main()
{
float a,b,c,x1,x2,p;
printf("请输ax^2+bx+c=0中的a,b,c:");
scanf("%f %f %f",&a,&b,&c);
p=b*b-4*a*c;
if(a==0)
{
if(b==0)
{
if(c==0)
printf("解为任何值!");
else
printf("无解!");
}
else
printf("解为%.4f",-c/a);
}
else
{
if(p>=0)
{
x1=(b+sqrt(p))/(2*a);
x2=(-b+sqrt(p))/(2*a);
printf("有两个实根:x1=%.4f,x2=%.4f",x1,x2);
}
else
{
x1=-b/(2*a);
x2=sqrt(-b)/(2*a);
printf("有两个虚根x1=%.4f,x2=%.4f",x1,x2);
}
}
return 0;
}
输出结果
知识点总结
这程序较以前的程序可能要复杂点,这里我用到了嵌套if语句,(多个嵌套可能在编程的时候比较烧脑——起码对于我这个初学者来讲),
每个if后面的一个表达式都是对应了一个判断条件,每个判断条件项目则是要输出的语句或表达式,
只要问题给出的判断条件满足,输出的是相应的结果。
心得体会
我的方程可能还有诸多需要改进的地方,下面是贺老师的程序供大家参考