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 复杂的方程,比如高次方程,或者积分方程等,对于这类问题,在数学上有着自己的解法,但是移植到计算机中 *** 作会比较繁琐,不易于编程实现。所以这类方程在计算机领域中,专门开发了更高效的算法,不适于笔算,但更符合计算机的工作方式。这时需要查找或学习对应算法并实现。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)