#include stdio.h
专业成都网站建设公司,做排名好的好网站,排在同行前面,为您带来客户和效益!创新互联为您提供成都网站建设,五站合一网站设计制作,服务好的网站设计公司,做网站、成都网站设计负责任的成都网站制作公司!
int main(void)
{
double a,b,c,d,e;
double x1,x2;
printf("请输入ax^2+bx +c = 0中a,b,c的值");
scanf("%lf,%lf,%lf",a,b,c);
e = b * b - 4 * a * c;
if (e0) {
printf("无解,请重新输入\n");
scanf("%lf,%lf,%lf",a,b,c);
}
printf("输入正确,正在计算....\n");
d = sqrt(e);
x1 = (-b + d)/(2 * a);
x2 = (-b - d)/(2 * a);
printf("x1=%f\n",x1);
printf("x2=%f\n",x2);
return 0;
}
首先你已经很清楚的说明了你这个程序是用C语言写二次函数的,而当a=0时,就不是二次函数了,应该按照一次函数来进行计算,否则 一个数除以0就没有意义了.~
#include stdio.h
#include stdlib.h
#include math.h
int main()
{
float a,b,c;
float x1,x2,m;
printf("input number a=:");
scanf("%f",a);
printf("input number b=:");
scanf("%f",b);
printf("input number c=:");
scanf("%f",c);
if(a==0)
printf("一根:%f\n",c*(-1)/b);
else if(a==0b==0)
printf("无意义!");
else
{
m=b*b-4*a*c;
if(m0)
{
printf("两根\n");
printf("x1=%f\n",(-b+sqrt(m))/(2*a));
printf("x2=%f\n",(-b-sqrt(m))/(2*a));
}
else if(m==0)
printf("x1=x2=%f\n",x1);
}
else
printf("无实根\n");
}
return 0;
}
我没运行代码 不过问题貌似在else if(fabs(disc)1e-6)
你的第1个if判断delta 就是那个disc 就是那么三角形样的东西 为0 那么fabs(disc)=1e-6浮点数为0
你的第2个elseif 我想你要判断的是disc为正数 那么可以直接开方 那你应该disc1e-6而不是fabs(disc)1e-6 其实disc0就行了
最后个else你是想disc为负数 那么要有i 我建议你写上disc-(1e-6)或者直接小于0
最后的最后 你一开始f=sqrt(disc)/(2*a); 有验算disc是大于等于0的亲?!!!
C语言编程
输入二次方程的三个系数
a
b
c
输出二次方程的根
#include
stdio.h
#include
stdlib.h
#include
math.h
int
main()
{
float
a,b,c,i,root1,root2;
printf("请输入三个系数:(输入格式:a,b,c)");
scanf("%f,%f,%f",a,b,c);
i=b*b-4*a*c;
if(i0)
{
root1=(-b+sqrt(i))/(2*a);
root2=(-b-sqrt(i))/(2*a);
printf("方程有两不等实根:");
printf("%f,%f",root1,root2);
}
else
if(i==0)
{
root1=root2=-b/(2*a);
printf("方程有两相等实根:");
printf("%f,%f",root1,root2);
}
else
{
root1=(-b)/(2*a);
root2=sqrt(-i)/(2*a);
printf("方程有两复根:");
printf("%f+%fi,%f-%fi",root1,root2,root1,root2);
}
return
0;
}
#include stdio.h
#include math.h
void main()
{
float a,b,c,x1,x2,p,q,disc;
printf("input a,b,c\n");
scanf("a=%f,b=%f,c=%f",a,b,c);
disc=b*b-4*a*c;
if (disc0)
{
printf("没根\n");
}
else
{
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;
x2=p-q;
printf("\nx1=%5.2f\nx2=%5.2f\n",x1,x2);
}
}
你输入的那个方程根本就没有根,这个你需要加一个判断条件,这样才能正确处理求根公式