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

用c语言编写一元二次方程

发布时间: 2022-07-09 07:00:53

⑴ 编写求解一元二次方程的c语言程序(红色部分有标注)

#include <stdio.h>
#include <math.h>
int main()
{
double a=1,b=0,c=0,x1,x2,delta;
printf("Input a,b,c: ");
scanf("%lf%lf%lf",&a,&b,&c);//(这里为红色部分)

if(a==0.0 && b==0.0 && c==0)
{
printf("系数a,b,c不能构成方程! ");
return 0;
}
if(a==0)
{
x1=x2=-c/b;
printf("x1=x2=%.4f ",x1);
return 0;
}
delta =b*b - 4*a*c; //此处填写delta的计算表达式(这里为红色部分)
if( delta >= 0)//此处填写表达式 如果delta>=0
{
delta=sqrt(delta);
x1=(-b+delta)/(2*a);
x2=(-b-delta)/(2*a);
printf("x1=%.4f x2=%.4f ",x1,x2);
}
else
{
delta = (0-delta);//delta反号;(这里为红色部分)
delta=sqrt(delta);//delta开方;(这里为红色部分)
x1=-b/(2*a);//实部
x2=delta/(2*a);//虚部
printf("x1=%.4f+%.4fi x2=%.4f-%.4fi ",x1,x2,x1,x2);
}
getchar();
return 0;
}

结果如下:

方程2

⑵ 用C语言编写求一元二次方程根的程序,条件要判断的充分怎么做

用C语言编写求一元二次方程根的程序,条件判断的充分,步骤如下:

void main()
{
float a,b,c,delta;
scanf("%f%f%f",&a,&b,&c);
if(a!=0)
{
delta=b*b-4*a*c;
if(delta==0)
printf("x1=x2=%7.2f",-b/(2*a));
else if(delta>0)
{
printf("x1=%7.2f",(-b+sqrt(delta))/(2*a));
printf("x2=%7.2f",(-b-sqrt(delta))/(2*a));
}
else
{
printf("x1=%7.2f+i%7.2f",-b/(2*a),sqrt(-delta)/(2*a));
printf("x2=%7.2f-i%7.2f",-b/(2*a),sqrt(-delta)/(2*a));
}
}
else if(b!=0)
printf("x=%7.2f",-c/b);
else if(c==0)
printf("0=0,x为任意解
");
else
printf("%f=0,error!",c);
}

⑶ 怎样用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;
}

⑷ 编写一个C语言程序来求解下面一个一元二次方程的实数解:2x平方+5x+3=0

一元二次方程ax^2+bx+c=0 (a≠0)的解有三种情况:

①判别式Δ=0时,有两个相等实根。

②判别式Δ>0时,有两个不等实根。

③判别式Δ<0时,无实数解。

源程序如下:

程序运行结果

注意如果a是分数时, c语言输入要转化成小数,例如1/2要输入0.5。

⑸ C语言编写一个求一元二次方程的实根的程序。

#include<stdio.h>
#include<math.h>

intmain()
{
inta,b,c;
intx1,x2;
intd;

printf("请输入方程的三个系数:");
scanf("%d,%d,%d",&a,&b,&c);

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

printf("方程有两个不相等的根为:%d,%d ",x1,x2);
}
elseif(d=0)
{
x1=x2=(-b)/(2*a);
printf("方程有两个相等的根为:%d ",x1);
}
elseif(d<0)
{
printf("方程没有实根 ");
}

return0;
}

⑹ c语言编写一元2次方程。

这是我做的
#include<stdio.h>
#include<math.h>
void
main()
//主函数
{
float
a,b,c,delta,x,x1,x2,realpart,imagpart;
//定义a,b,c,delta,x,x1,x2,x3为浮点型
scanf("%f,%f,%f",&a,&b,&c);
//输入二次方程系数a,b,c的值
delta=b*b-4*a*c;
if(fabs(a)>=1e-6)
//以下为if语句
{
if(fabs(delta)<=1e-6)
printf("此时方程有两相同实根且为%f\n",x=-b/2/a);//delta为0有一根
else
if(delta>1e-6)
{
x1=(-b+sqrt(delta))/2/a;
x2=(-b-sqrt(delta))/2/a;
printf("x1=%f,x2=%f\n",x1,x2);//delta>0有两实根
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-delta)/(2*a);
printf("has
complex
roots:\n");
printf("%f+%f*i\n",realpart,imagpart);
printf("%f-%f*i\n",realpart,imagpart);//delta<0有两复根
}
}
else
{
if(fabs(b)<=1e-6)
if(fabs(c)<=1e-6)
printf("可输出任意x值\n");
else
printf("此时方程无意义\n");
else
printf("此时方程有一根为%f\n",x=-c/b);
}
}

⑺ 怎样用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>。

⑻ 如何用C语言编写一程序求解一元二次方程的根

C语言编写一程序求解一元二次方程的根:

#include<stdio.h>

#include<math.h>

void m(float a,float b,float c)

{

double x1,x2;

x1=(-b+sqrt(b*b-4*a*c))/(2*a);

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

printf("方程的根是%.2lf和%.2lf",x1,x2);

}

void n(float a,float b,float c)

{

double x;

x=(-b)/(2*a);

printf("方程的根为%.2lf",x);

}

void f(float a,float b,float c)

{

printf("方程无实数根 ");

}

main()

{

float a,b,c;

printf("请输入a,b,c的值 ");

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

if(b*b-4*a*c>0)

m(a,b,c);

if(b*b-4*a*c==0)

n(a,b,c);

if(b*b-4*a*c<0)

f(a,b,c);

}

⑼ 用C语言编写求一元二次方程根的程序

#include<stdio.h>
#include<math.h>
intmain()
{
doublea,b,c,disc,x1,x2,realpart,imagpart;
scanf("%lf%lf%lf",&a,&b,&c);
printf("Theequation");
if(fabs(a)<=1e-6)
printf("isnotaquadratic ");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("hastwoequalroots:%8.4f ",-b/(2*a));
else
if(disc>0)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("hasdistinctrealroots:%8.4fand%8.4f ",x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("hascomplexroots: ");
printf("%8.4f+%8.4fi ",realpart,imagpart);
printf("%8.4f-%8.4fi ",realpart,imagpart);
}
}
return0;
}

⑽ 用C语言中,如何用调用函数编写求一元二次方程的根

int GetRoot(float a, float b, float c ,double* root){
double delta, deltasqrt ;
delta = b* b - 4*a*c ;
if(delta<0) return 0 ;
deltasqrt = sqrt(delta) ;
if (a!=0.0){
root[0] = (deltasqrt - b)/(2.0*a) ;
root[1] = (-deltasqrt - b)/(2.0*a) ;
}
if (root[0] == root[1]) return 1;
else return 2 ;
}

int main(void){
//计算方程的根
float a = 2.0,b =6.0,c=3.0 ;//a,b,c s是参数
double root[2] ;//root是得到的两个根
int n = GetRoot(a,b,c,root) ;
if (n<1){
printf("方程无根") ;
}else{
printf("方程的解为:%f,%f",root[0],root[1]) ;
}
}