⑴ 怎样用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语言编写一个求一元二次方程的实根的程序。
#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语言程序(红色部分有标注)
#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语言编一个解一元二次方程的程序
这个只能计算已经化简成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语言求1元2次方程解
#include<stdio.h>
#include<math.h>
void
main()
{
printf("请输入a,b,c:");
float
a,b,c;
scanf("%f,%f,%f",&a,&b,&c);
if(b*b-4*a*c==0)
printf("方程有两个相同的实根为:\n%f\n",-b/(a*2));
if(b*b-4*a*c>0)
printf("方程有两个不同的实根,分别为:\n%f,%f\n",(-b+sqrt(b*b-4*a*c))/(2*a),(-b-sqrt(b*b-4*a*c))/(2*a));
if(b*b-4*a*c<0)
printf("方程有两个不同的虚根,分别为:\n%f+%fi,%f-%fi\n",-b/(a*2),sqrt(-b*b+4*a*c)/(2*a),-b/(a*2),sqrt(-b*b+4*a*c)/(2*a));
}
⑹ C语言,求一元二次方程的解
对于如下的一元二次方程:
ax*x+bx+c=0
设计C语言程序,输入一元二次方程的三个系数a、b、c,求解出该方程的两个根,并且允许用户在程序中多次输入不同的系数,以求解不同的一元二次方程的解。
编程思路分析:
对于该方程,令delta=b^2-4*a*c,从数学的角度来讲,我们需要根据delta的值来判断该方程的根情况:
当delta>=0时,其两个根为实数解,分别为(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);
当delta<0时,其两个根为复数解,实部皆为-b/(2*a),虚部分别为sqrt(-delta)/(2*a)和-sqrt(-delta)/(2*a)。
其中,sqrt(delta)代表对delta作开根号运算。
在代码设计中,可定义一个结构体Complex存储该方程的根,在该结构体中包括实部和虚部两个变
在程序中,定义两个Complex类型的根x1和x2,当delta>=0时,两个根的虚部为0,否则,分别求解两个根的虚部值。
具体编程如下:
#include"stdio.h"
#include"math.h"
/*求一元二次方程ax*x+bx+c=0的解*/
main()
{floata,b,c,x1,x2,d;
printf("请输入a:");
scanf("%f",&a);
printf("请输入b:");
scanf("%f",&b);
printf("请输入c:");
scanf("%f",&c);
d=b*b-4*a*c;if(d<0)
printf("方程没有实数解。
");
if(d==0){x1=(-b)/(2*a);
printf("x1=%f
",x1);}
if(d>0){x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f
",x1,x2);}}
请输入a:12
请输入b:34
请输入c:4
x1=-0.122985,x2=-2.710348
Pressanykeytocontinue
为迭代序列。
⑺ 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");
}
⑻ 用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("方程无实数根\n");
}
main()
{
float a,b,c;
printf("请输入a,b,c的值\n");
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"
void fp(double a,double b,double t){
b/=(a+=a);
t=sqrt(t)/a;
printf("x1 = %g x2 = %g ",-b+t,-b-t);
}
void fn(double a,double b,double t){
b/=(a+=a);
t=sqrt(-t)/a;
if(b)
printf("x1 = %g+%gi x2 = %g-%gi ",-b,t,-b,t);
else
printf("x1 = %gi x2 = %gi ",t,-t);
}
void f0(double a,double b){
printf("x1=x2 = %g ",-b/(a+a));
}
int main(int argc,char *argv[]){
double a,b,c,t;
printf("Enter a, b, c(R:)... ");
if(scanf("%lf%lf%lf",&a,&b,&c)==3 && a)
(t=b*b-4*a*c)>0 ? fp(a,b,t) : t<0 ? fn(a,b,t) : f0(a,b);
else
printf("Input error, exit... ");
return 0;
}
⑽ 如何用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);
}