用C语言编写一程序求解一元二次方程的根。

要求用一个函数实现,并且分别用三个函数实现判别式大于0、等于0和小于0的运算。

#include<stdio.h>
#include<math.h>
void m(float a,float b,float c)
{
double x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根是%.2lf和%.2lf",x1,x2);
}
void n(float a,float b,float c)
{
double x;
x=(-b)/(2*a);
printf("方程的根为%.2lf",x);
}
void f(float a,float b,float c)
{
printf("方程无实数根\n");
}
main()
{
float a,b,c;
printf("请输入a,b,c的值\n");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
m(a,b,c);
if(b*b-4*a*c==0)
n(a,b,c);
if(b*b-4*a*c<0)
f(a,b,c);
}追问

方程的根是%.2lf和%.2lf", %2lf是什么意思

追答

方程的根是%.2lf和%.2lf", %2lf是什么意思
这个是让输出更好看一些,%.2lf是控制输出的浮点数只输出小数点后两位的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-30

C语言编写一程序求解一元二次方程的根:

#include<stdio.h

#include<math.h> 

void m(float a,float b,float c) 

double x1,x2; 

x1=(-b+sqrt(b*b-4*a*c))/(2*a); 

x2=(-b-sqrt(b*b-4*a*c))/(2*a); 

printf("方程的根是%.2lf和%.2lf",x1,x2); 

void n(float a,float b,float c) 

double x; 

x=(-b)/(2*a); 

printf("方程的根为%.2lf",x); 

void f(float a,float b,float c) 

printf("方程无实数根\n"); 

main() 

float a,b,c; 

printf("请输入a,b,c的值\n"); 

scanf("%f%f%f",&a,&b,&c); 

if(b*b-4*a*c>0) 

m(a,b,c); 

if(b*b-4*a*c==0) 

n(a,b,c); 

if(b*b-4*a*c<0) 

f(a,b,c); 

}

根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。
具体步骤如下:/导致这种情况的原因主要是。

本回答被网友采纳
第2个回答  2020-04-23
#include<stdio.h>
#include<math.h>
int main(void)
{
float a,b,c,d,y,x1,x2;
scanf("%f %f %f",&a,&b,&c);
d=b*b-4*a*c;
if(a==0 && b==0 && c==0)
printf("Zero Equation");
else if(a==0 && b==0 && c!=0)
… }
}
else if(d<0 && b==0 && a>0)
printf("0.00+%.2fi\n0.00-%.2fi",sqrt(-d)/2/a,sqrt(-d)/2/a);
else if(d<0 && b==0 && a<0)
printf("0.00-%.2fi\n0.00+%.2fi",sqrt(-d)/2/a,sqrt(-d)/2/a);
}
return 0;
}
相似回答