当前位置:首页 » 编程语言 » 求解一元二次方程的方法c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

求解一元二次方程的方法c语言

发布时间: 2022-10-07 13:36:18

1. c语言一元二次方程求解

#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,x,x1,x2;//应该为浮点数。
printf("请输入:");
scanf("%f%f%f",&a,&b,&c);//1,输入一起改为浮点数个数输入。2,输入最好别用非空格符',' 不然将限制你输入格式。
a*x*x+b*x+c==0;//不应该赋值运算符。
if(a==0)
printf("此方程不是二次方程\n");//没有格式输出符就不应该有参数。
else if(b*b-4*a*c==0)
printf("此方程有两相等实根,根为:%f.\n",x=b/(2*a));//有参数应该有格式输出符。
else if(b*b-4*a*c>0)
printf("此方程有两不相等实根,根为:%f,%f.\n",x1=(-b+sqrt(b*b-4*a*c))/(2*a),x2=(-b-sqrt(b*b-4*a*c))/(2*a));//同上
else if(b*b-4*a*c<0)
printf("此方程有两共轭复根,实部:%f,虚部:%f.\n",-b/(2*a),sqrt(-(b*b-4*a*c))/(2*a));//1,同上。2,参数应为表达式。
}

如果还有其他的错,那就是算法的错了。

2. 怎样用C语言编一个解一元二次方程的程序(可以看步骤)!

#include <stdio.h>
#include <math.h>
int main(void)
{
int a, b, c; //定义一元二次方程的三个数值;
printf("请依次输入一元二次方程的三个参数a b c,中间以空格隔开\n");
scanf("%d %d %d", &a, &b, &c); //依次输入一元二次方程的三个参数
double delta = b*b - 4*a*c; //定义delta的值为b*b - 4*a*c
double x1 = (-b + sqrt(delta))/(2 * a);
double x2 = (-b - sqrt(delta))/(2 * a);

if (delta>0) //delta大于0时,方程有两个解
{
printf("一元二次方程有两个解\n");
printf("一元二次方程的第一个解,x1 = %f\n",x1);
printf("一元二次方程的第二个解,x2 = %f\n",x2);
}
else if (delta ==0) //delta等于0,方程有两个相同的解
{
printf("一元二次方程有两个相同的解\n");
printf("一元二次方程的解为x1 = x2 =%f\n",x1);
}
else //delta小于0时,方程没有解
{
printf("一元二次方程没有解\n");
}

return 0;
}

3. c语言求解一元二次方程

#include<stdio.h>
#include<math.h>
intmain()
{inta,b,c;
floatx,x1,x2,d;
scanf("%d%d%d",&a,&b,&c);
d=b*b-4*a*c;
if(a==0)
{if(b==0)
{
printf("Inputerror! ");}
else
printf("x=%.6f",-c/(float)b);//转为float类型。
}
else
{
if(d<0)
{x1=(-b+sqrt(-d))/(2*a);
x2=(-b-sqrt(-d))/(2*a);
printf("x1=%.6f+%.6fi x2=%.6f-%.6fi ",(float)(-b)/(2*a),sqrt(-d)/(2*a),(float)(-b)/(2*a),sqrt(-d)/(2*a));}//这里少了一个(-b)另外两个int操作转为float

elseif(d==0)
{printf("x1=x2=%.6f ",(-b)/(2.0*a));}//缺));

else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%.6f x2=%.6f",x1,x2);

}
}
}

4. c语言求解一元二次方程

intmain()
{
inta,b,c,d;
floatx1,x2;
scanf("%d%d%d",&a,&b,&c);
d=b*b-4*a*c;
if(a==0)
{
if(b==0)
{
printf("Inputerror! ");
}
else
printf("x=%.6f",-c/b);
}
else
{
if(d<0)
printf("Inputerror! ");
elseif(d==0)
printf("x1=x2=%.6f",-b/(2*a));
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%.6f x2=%.6f ",x1,x2);
}
}
return0;
}

5. c语言 算一元二次方程

//只一处有错,还有一个注意输入格式.
#include<stdio.h>
#include<math.h>
int main()
{
double p,q,x1,x2,disc,a,b,c;
scanf("%lf,%lf,%lf",&a,&b,&c);//特别注意:此处要求输入时a,b,c(三个数)之间用逗号隔开,而不是空格!
disc=b*b-4*a*c;
if(disc>0)
{
p=-b/(2.0*a);
q=(sqrt(disc))/(2.0*a);
x1=p+q;
x2=p-q;
printf("x1=%lf\tx2=%lf",x1,x2);
}
else if(disc=0)//只有此处有错,关系表达式的等于符号是"==",此句改为else if(disc==0);即可
{
p=-b/(2.0*a);
x1=p;
printf("x1=x2=%lf",x1);
}
else if(disc<0)
{
disc=-disc;
p=-b/(2.0*a);
q=(sqrt(disc))/(2.0*a);
printf("x1=%lf+%lfi\n",p,q);
printf("x2=%lf-%lfi\n",p,q);
}
return 0;
}

6. 怎样用C语言编一个解一元二次方程的程序

这个只能计算已经化简成aX^2+bX+c=0的一元二次方程


intfun(doublea,doubleb,doublec,double*x1,double*x2)//由于方程既可能无解也可能有两个解,所以不能直接返回X的值
{
doublep=b*b-4*a*c;//计算Δ
if(p<0)
{
return0;//方程无解,返回0
}
p=√p//求Δ的平方根
*x1=……//用求根公式计算X1
*x2=……//用求根公式计算X2
return1;//方程有解,返回1
}


就这些了,求根公式和求平方根函数我忘了,你自己查一下。头文件要加一个<math.h>。

7. 用C语言求解一元二次方程

#include<stdio.h>
#include<math.h>
intmain()
{
doublea,b,c,d,x1,x2;

while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
{
d=b*b-4*a*c;
if(d<0)
{
printf("无解 ");
}
elseif(d==0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("%.2lf%.2lf ",x1,x2);
}
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
if(x1>x2)
{
printf("%.2lf%.2lf ",x1,x2);
}
elseif(x1<x2)
{
printf("%.2lf%.2lf ",x2,x1);
}
}
}
return0;
}

8. C语言编程 解一元二次方程

#include<stdio.h>

main()
{int a,b,c,x1,x2,M,n;
printf("请输入方程的三个系数:");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);n=a*c;
M=b*b-4*n;
printf("%d\n",M);if (M>0)
{ x1=(-b+M)/(2*a);
x2=(-b-M)/(2*a);
printf("方程的两个根是:\nx1=%d,x2=%d\n",x1,x2);
}
else if (M==0)
{ x1=-b/(2*a);
printf("方程具有两个相等的实根:x1=x2=%d\n",x1);
}
else
printf("输入错误,请重新输入\n");

}

9. c语言解一元二次方程是什么

#include<iostream> 。

#include<cmath>。

usingnamespacestd。

intmain()。

{floata,b,c;floatx1,x2; cin>a>>b>>c;floatdlt=b*b-4*a*c;if(dlt>=0){x1=-b/2/a+sqrt(dlt)。

/2/ax2=-b/2/a-sqrt(dlt)/2/a。

cout<<a<<"x^2+"<<b<<"x+"<<c<<"=0有两个实根:";cout<<"x1="<<x1<<",x2="<<x2<<endl;} 。

else。

{x1=-b/2/a;x2=sqrt(-dlt)/2/a;cout<<a<<"x^2+"<<b<<"x+"<<c<<"=0有两个虚根:"。

cout<<"x="<<x1<<"+/-"<<x2<<"i"<<endl;}。

return0。

成立条件:

一元二次方程成立必须同时满足三个条件:

①是整式方程,即等号两边都是整式,方程中如果有分母;且未知数在分母上,那么这个方程就是分式方程,不是一元二次方程,方程中如果有根号,且未知数在根号内,那么这个方程也不是一元二次方程(是无理方程)。

②只含有一个未知数。

③未知数项的最高次数是2。

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

c语言一元二次方程编程是#include<iostream> 。#include<cmath>。usingnamespacestd。intmain()。{floata,b,c;floatx1,x2; cin>a>>b>>c;floatdlt=b*b-4*a*c;if(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语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。