c 语言 解一个一元二次方程组(c语言一元二次方程流程图)

c 语言 解一个一元二次方程组(c语言一元二次方程流程图)

首页维修大全综合更新时间:2024-01-17 06:11:06

c 语言 解一个一元二次方程组

对于如下的一元二次方程:

ax*x+bx+c=0

设计C语言程序,输入一元二次方程的三个系数a、b、c,求解出该方程的两个根,并且允许用户在程序中多次输入不同的系数,以求解不同的一元二次方程的解。

编程思路分析:

对于该方程,令delta=b^2-4*a*c,从数学的角度来讲,我们需要根据delta的值来判断该方程的根情况:

当delta>=0时,其两个根为实数解,分别为(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);

当delta<0时,其两个根为复数解,实部皆为-b/(2*a),虚部分别为sqrt(-delta)/(2*a)和-sqrt(-delta)/(2*a)。

其中,sqrt(delta)代表对delta作开根号运算。

在代码设计中,可定义一个结构体Complex存储该方程的根,在该结构体中包括实部和虚部两个变

在程序中,定义两个Complex类型的根x1和x2,当delta>=0时,两个根的虚部为0,否则,分别求解两个根的虚部值。

具体编程如下:

#include "stdio.h"

#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("方程没有实数解。 ");

if (d==0){x1=(-b)/(2*a);

printf("x1=%f ",x1);}

if (d>0){x1=(-b+sqrt(d))/(2*a);

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

printf("x1=%f,x2=%f ",x1,x2);} }

请输入a:12

请输入b:34

请输入c:4

x1=-0.122985,x2=-2.710348

Press any key to continue

大家还看了
也许喜欢
更多栏目

© 2021 3dmxku.com,All Rights Reserved.