c语言一元二次方程编程是怎么样的?

c语言一元二次方程编程是怎么样的?,第1张

c语言一元二次方程编程是#include <iostream>。#include <cmath>。using namespace std。int main()。{float a,b,cfloat x1,x2cin>a>>b>>cfloat dlt=b*b-4*a*cif(dlt>=0){x1=-b/2/a+sqrt(dlt)。/2/ax2=-b/2/a-sqrt(dlt)/2/a。

形如x=p或(nx+m)=p(p≥0)的一元二次方程可采用直接开平方的方法解一元二次方程.如果方程化成x²=p的形式,那么可得x=±p;(x²=p,x=±根号p)如果方程能化成(nx+m)=p(p≥0)的形式,那么nx+m=±p。

简洁的语言:

C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。

实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

提供的控制语句具有结构化特征,如for语句、if...else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。

你的问题是当d>0时,顺程序看下去自然就有x1>x2,所以if中的嵌套if没有起作用,也就是d=0你就直接归为输出no了,下面是我在你的程序基础上改的,删去了一些较繁琐的地方,程序相当简便,即使你用不到也可能对后来人有帮助。

#include<stdio.h>

#include<math.h>

void main()

{

float a,b,c,d

float x1,x2

printf("please input 3 numbers:\n")

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

d=b*b-4*a*c

if(d>0)

{

d=sqrt(d)

x1=(-b+d)/(2*a)

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

printf("%.2f\n%.2f\n",x1,x2)

}

else if ((int)d==0)

{

x1=-b/(2*a)

printf("%.2f\n",x1)

}

else printf("No")

}

采用C语言编程解方程,有两种情况:

1 简单的方程,比如一元一次方程,或者多元一次方程,以及一元二次方程等,这类数学上有固定的解题方法的,可以在程序中输入参数,并按照数学方法,进行求解。

2 复杂的方程,比如高次方程,或者积分方程等,对于这类问题,在数学上有着自己的解法,但是移植到计算机中 *** 作会比较繁琐,不易于编程实现。所以这类方程在计算机领域中,专门开发了更高效的算法,不适于笔算,但更符合计算机的工作方式。这时需要查找或学习对应算法并实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8091004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存