⑴ 编写求解一元二次方程的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]) ;
}
}