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

一元二次方程的系数abc的值c语言编程

发布时间: 2022-06-09 20:52:40

⑴ 用c语言编写程序,输入一元二次方程的系数a,b,c,计算方程的根(假设是两个实根,测试数据必须保证这一

希望有用,敬请采纳 ^_^

# include<stdio.h>
# include<math.h>
int main()
{
void root2(double a,double b,double disc); //定义方程有两个根时的函数
void root1(double a,double b); //定义方程只有一个根时的函数
void root0(); //定义方程没有实数解是的函数
double a,b,c,disc;
printf("请输入a,b,c的值:");
scanf("%lf %lf %lf",&a,&b,&c);
if(a==0) //一元二次方程二次项系数不为0
{
printf("data error\n");
}
else
{
disc=b*b-4*a*c;
if(disc>0)
root2(a,b,disc);
else if(disc==0)
root1(a,b);
else
root0();
}
return 0;
}
void root2(double a,double b,double disc)
{
double x1,x2;
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%lf\nx2=%f\n",x1,x2);
}
void root1(double a,double b)
{
double x;
x=(-b)/(2*a);
printf("x1=x2=%lf\n",x);
}
void root0()
{
printf("方程没有实数解\n");
}

⑵ C语言 输入一元二次方程的系数a,b,c然后输出这个一元二次方程,a为0时结束。

#include"stdio.h"
#include"math.h"
voidmain()
{
floata,b,c;
printf("输入abc三者的值: ");
scanf("%f",&a);
while(fabs(a)>1e-5)
{
scanf("%f",&b);
scanf("%f",&c);
printf("%.2fx^2+(%.2fx)+(%.2f)=0 ",a,b,c);
scanf("%f",&a);
}
if(fabs(a)<1e-5)
printf("结束 ");
system("pause");
return;
}

⑶ C语言编程 一元二次方程求根。要求:键盘输入系数a,b,c的值,求解一元二次方程的根

#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,disc,p,q,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
if(a != 0)
{
if(disc<0)
printf("\n");
else
{
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
if(disc>0)
printf("%f%f\n",x1,x2);
else printf("%f\n",x1);
}
}
else if(b == 0)
{
if(c == 0)
printf("有无限多个解\n");
else
printf("无解\n");
}
else
{
x1 = -c/b;
printf("x =%f\n",x1);
}
return 0;
}

⑷ C语言 任意输入一元二次方程的系数a, b, c,计算并输出一元二次方程的所有根

#include<stdio.h>
#include<math.h>
voidmain()
{
floata,b,c,x1,x2,disc;
scanf("f%f%f%",&a,&b,&c);//改成scanf("%f%f%f",&a,&b,&c);
disc=b*b-4*a*c;
if(fabs(a)<=1e-6)
{
x1=-c/b;
printf("%2.4f",x1);

}
elseif(disc>=0)
{
x1=float(-b+sqrt(disc))/(2*a);
x2=float(-b-sqrt(disc))/(2*a);
printf("%2.4f%2.4f",x1,x2);
}
else(disc<0)//改成elseif(disc<0)
{
printf("根为共轭复数");
}
}

⑸ c语言 给定一元二次方程的系数a,b,c,求方程的解。用开方函数

参考代码如下:
#include<stdio.h>
#include<math.h>
#define EPS 1e-6
int main(void)
{
float a,b,c,p,q,disc;
printf("ax*x+bx+c=0\n");
printf("请输入a b c:");
scanf("%f%f%f",&a,&b,&c);
p=-b/(2*a);
disc=b*b-4*a*c;
q=sqrt(fabs(disc))/(2*a);
if(fabs(a)<=EPS)//解决浮点数相等比较问题
printf("参数错误\n");
else if(fabs(disc)<=EPS)
printf("x1=x2=%.2f\n",p);
else if(disc>0){
printf("x1=%.2f\n",p+q);
printf("x2=%.2f\n",p-q);
} else {
printf("x1=%.2f+%.2fi\n",p,q);
printf("x2=%.2f-%.2fi\n",p,q);
}
return 0;
}

⑹ 用C语言编写程序,输入一元二次方程的系数a,b,c,计算方程的根,要考虑虚根的情况,求解答

对于ax^2+bx+c=0
int panan(int a,int b,int c)
{
int m;
m=b*b-4*a*c;
return(m);
}
void main()
{int a,b,c,flag,x1,x2,ture,virture;
printf("请依次输入二次方程的系数:\n”);
scanf("%d %d %d",&a,&b,&c);
flag=panan(a,b,c);
if(flag>0)
{x1=(-b+sqr(flag))/(2*a);
x2=(-b-sqr(flag))/(2*a);
printf("两个不相等的实根为:x1=%d,x2=%d",x1,x2);
}
else if(flag==0)
{x1=-b/(2*a);
printf("两个相等的实根为:x1=x2=%d",x1);
}
else
{ture=-b/(2*a);
virture=sqr(-flag)/(2*a);
printf("两个不相等的虚根为:x1=%d+%di,x2=%d-%di",ture,virture,ture,virture);
}
}
程序的健壮性不是很好,适用于int型的,你可以将所有的变量都改为float,这样就可以处理其他的问题。要求输入绝对正确,3个系数之间以空格隔开!

⑺ 用C语言输入一元二次方程的系数a,b,c,采用二分法求方程的根 ,精确到小数点后2位(即误差<=0。01)

以下是二分法求已知区间的根,自己将其修改一下,增加一个区间确定就可以了
#include <math.h>
#include <stdio.h>
double f(double a, double b, double c, double x) // 求函数值
{ return a * x * x + b * x + c; }
int main()
{
double x, u, v, f1, f2, fm, a, b, c;
printf("请输入一元二次方程的系数:");
scanf("%lf%lf%lf", &a, &b, &c);
/* 这里可以增加是否合法二次方程的判断*/
printf("请输入区间端点:");
scanf("%lf%lf", &u, &v);
f1 = f(a, b, c, u);
f2 = f(a, b, c, v);
if (f1 * f2 > 0)
{
printf("区间内无解!\n");
return 1;
}
do
{
x = (u + v) / 2;
fm = f(a, b, c, x);
if (fm == 0)
break;
if (f1 * fm > 0.0) /* 同号时修改端点*/
{
u = x;
f1 = f(a, b, c, u);
}
else
v = x;
} while (fabs(fm) >= 1e-2);/*这里还可以在条件中增加循环次数控制*/
printf("根为:%8.3lf\n", x);
return 0;
}

⑻ C语言计算一元二次方程方程过程中,如何给abc赋值

scanf("%1f%1f%1f",&a,&b,&c);
应该是:
scanf("%lf%lf%lf",&a,&b,&c);
是小写的L

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