C语言程序设计(求方程的根)

求方程的根

Description
求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。

Input
a b c

Output**
x1=?
x2=?

Sample Input
4 1 1

Sample Output
x1=-0.125+0.484i x2=-0.125-0.484i

#include<stdio.h>
#include<math.h>
//#include<complex.h>
int main()
{
	double a,b,c,temp,x1,x2,y1,y2;
	scanf("%lf%lf%lf",&a,&b,&c);
//	{
temp=pow(b,2)-4*a*c;
	if(temp>0)
	{x1=(-b+sqrt(temp))/(2*a);
	x2=(-b-sqrt(temp))/(2*a);
	printf("x1=%f x2=%f",x1,x2);
	}
	else if(temp<0)   //  当判别式<0时,会产生复数
	{ x1=(-b)/(2*a);
	y1=sqrt(-temp)/(2*a);
	 x2=(-b)/(2*a);
	 y2=sqrt(-temp)/(2*a);
	 printf("x1=%.3f+%.3fi x2=%.3f-%.3fi\n",x1,y1,x2,y2);}
	else
	{x1=-b/(2*a);
	x2=-b/(2*a);
	printf("x1=%f x2=%f",x1,x2);
	}
	return 0;
}


  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
有限差分法是一种常用的数值计算方法,用于解决微分方程的数值逼近问题,其中包括常微分方程、偏微分方程等。C语言是一种广泛应用的编程语言,具有简单易学的特点,因此可以用C语言来实现有限差分法。 有限差分法的核心思想是将连续的微分方程离散化为差分方程,通过计算差分方程的近似解来近似解原微分方程。主要步骤包括网格划分、差分格式设定和迭代解。 首先,需要将所解的区域离散化为一定间隔的网格,网格划分可以采用等间距或不等间距的方式。然后,据差分格式的要,给出差分方程的离散形式,这时需要对微分方程进行近似处理,通常采用中心差分、向前差分或向后差分等形式。最后,通过迭代解差分方程的近似解,一般使用显式或隐式的数值迭代方法,如欧拉法、隐式差分法等。 在C语言中,可以利用数组等数据结构来表示离散化后的网格,并通过循环遍历实现差分方程的计算和迭代解,最终得到微分方程的数值近似解。此外,还可以使用C语言提供的数值计算库或自定义函数来简化差分运算和迭代解的编写过程。 总之,有限差分法的C语言程序设计主要包括网格划分、差分格式设定和迭代解,在实际应用中可据不同的微分方程和数值计算需进行灵活调整和优化。使用C语言实现有限差分法能够提高计算效率和精度,为解决微分方程问题提供一种可行的数值计算方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值