c语言求二次方程的根函数 c语言计算二次方程的根

c语言问题,求二次方程的根

你的程序是有问题的。改法如一楼中的改,他的代码equal_to_zero(float a,float b)中的return写错了,改过来就行。

创新互联建站主要从事成都网站建设、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务市南,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

你的程序主要问题就在你输入的a,b,c的值是错误的。你可以这样写 scanf("%f%f%f",a, b, c);不要用逗号什么的分开。这样就可以了,你最好是分成三个输入,否则的话不太好掌握输入的字符。

c语言求二次函数的根

#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语言 编程求二次方程根

我没运行代码 不过问题貌似在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语言求二次方程的根函数 c语言计算二次方程的根
分享网址:http://scjbc.cn/article/dosghdi.html

其他资讯