#include "math.h"
/*求一元二次方程ax*x+bx+c=0的解*/
main()
{
float a,b,c,x1,x2,d
printf("请输入a:")
scanf("%f",&a)
printf("请输入b:")
scanf("%f",&b)
printf("请输入c:")
scanf("%f",&c)
d=b*b-4*a*c
if(d < 0)
printf("方程没有实数解。\n")
if (d==0)
{
x1=(-b)/(2*a)
printf("x1=%f\n",x1)
}
if (d>0)
{
x1=(-b+sqrt(d))/(2*a)
x2=(-b-sqrt(d))/(2*a)
printf("x1=%f,x2=%f\n",x1,x2)}
}
请输入a:12
请输入b:34
请输入c:4
x1=-0.122985,x2=-2.710348
Press any key to continue
采用C语言编程解方程,有两种情况:1 简单的方程,比如一元一次方程,或者多元一次方程,以及一元二次方程等,这类数学上有固定的解题方法的,可以在程序中输入参数,并按照数学方法,进行求解。
2 复杂的方程,比如高次方程,或者积分方程等,对于这类问题,在数学上有着自己的解法,但是移植到计算机中 *** 作会比较繁琐,不易于编程实现。所以这类方程在计算机领域中,专门开发了更高效的算法,不适于笔算,但更符合计算机的工作方式。这时需要查找或学习对应算法并实现。
#include<stdio.h>
#include
<math.h>
double
x1,x2,p
float
file1(float
a,float
b)
{
x1=(-b+sqrt(p))/2*a
x2=(-b-sqrt(p))/2*a
return
0
}
float
file2(float
a,float
b)
{
x1=x2=(-b+sqrt(p))/2*a
return
0
}
void
main()
{
float
a,b,c
printf("请依次输入方程的三个系数:\n")
scanf("%f%f%f",&a,&b,&c)
p=b*b-4*a*c
printf("方程是:%.1f*x*x
+
%.1f*x
+
%.1f
=
0\n",a,b,c)
if(p>0)
{
file1(a,b)
printf("X1=%f\tX2=%f\n",x1,x2)
}
else
if(p==0)
{
file2(a,b)
printf("X1=%f\tX2=%f\n",x1,x2)
}
else
printf("方程无解")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)