步骤:
打开visual C++ 60-文件-新建-文件-C++ Source File
2
定义变量:
#include <stdioh>
#include <mathh>
void main()
{
double a,b,c; /定义系数变量/
double x1,x2,p; /定义根变量和表达式的变量值/
3输入系数:
printf("请输入a,b,c:"); /提示用户输入三个系数/
scanf("%lf%lf%lf",&a,&b,&c); /接收用户输入的系数/
4输出回车:
printf("\n"); /输出回行/
5
计算根:
p=bb-4ac; /给表达式赋值/
x1=(-b+sqrt(p))/(2a); /根1的值/
x2=(-b-sqrt(p))/(2a); /跟2的值/
6
输出结果:
printf("x1=%f,x2=%f\n",x1,x2); /输出两个根的值/
完整的源代码:
#include <stdioh>
#include <mathh>
void main()
{
double a,b,c; /定义系数变量/
double x1,x2,p; /定义根变量和表达式的变量值/
printf("请输入a,b,c:"); /提示用户输入三个系数/
scanf("%lf%lf%lf",&a,&b,&c); /接收用户输入的系数/
printf("\n"); /输出回行/
p=bb-4ac; /给表达式赋值/
x1=(-b+sqrt(p))/(2a); /根1的值/
x2=(-b-sqrt(p))/(2a); /跟2的值/
printf("x1=%f,x2=%f\n",x1,x2); /输出两个根的值/
}
程序想法没错,但设计的时候有点失误。
void
main()
{
float
a=0,b=0,c=0,d=0,x1=0,x2=0,e=0;/定义变量/
printf("axe2+bx+c=0,(a,b,c):\n");/提示输入3个数/
scanf("%f,%f,%f",&a,&b,&c);/输入的时候用float型
/
e=sqrt(d);/根号d
/
x1=(-b+e)/(2a);/计算方程,公式有点不点,逻辑/
x2=(-b-e)/(2a);/计算方程/
printf("\n
positive:\n
x1=%f,\n
negative:\nx2=%f",x1,x2);/输出x1
x2,输出的时候也要用float型/
}
else
printf("equation");/方程无解/
getch();
}
//经修改,可以正常运行,
还有建议下,你就在定义变量的时候不要一大串一起定义类型,
有时候变量的类型是不无法隐型转换的,就会出错。
就像程序里面的,开根号又不一定都开出个整数,大多都是带小数的,就应该定义成float型,
最后的解也会直接化成带小数的,要是你用long(长整型,也是整型的一种),
那小数点后面就将被程序自动省略,那问题可就大了,呵呵,。
还在做为printf输出的时候,要给点提示,不然人家也不知道,这a,b,c是干嘛用的。
您好!很高兴为您解答。
原代码中的scanf和printf中的%要放在d和lf的前面才对,改正后运算无误~
#include <stdioh>
#include <mathh>
void main ()
{
double x1;//x1,x2分别为方程的2个解
double x2;
double melt;
int a;
int b;//初始化ABC的三个变量
int c;
printf("请输入a b c三个数的值:");
scanf("%d %d %d",&a, &b ,&c);//输入ABC的时候需要空格
melt = bb - 4ac;//初始化melt的值
if (melt>0)
{ x1=(-b + sqrt(melt))/(2a);
x2=(-b - sqrt(melt))/(2a);
printf ("2个解,x1 = %lf,x2 = %lf\n",x1,x2);
}
else if (melt==0)
{
x1 = (-b )/(2a);
x2 = x1;
printf("1个解,x1 = %lf,x2 = lf%\n",x1,x2);
}
else
{
printf("无解\n");
}
}
望采纳~如您还有不解,欢迎追问~
#include <stdioh>
#include <mathh>
int main()
{
float a,b,c,d,x1,x2;
scanf("%f%f%f",&a,&b,&c); //输入三个系数
d=bb-4ac; //计算判别式
if(d<0)printf("无实数根!\n");
else if(d==0)printf("有两个相等的实数根,x1=x2=%g\n",-b/(2a));
else
{
x1=(-b+sqrt(d))/(2a);
x2=(-b-sqrt(d))/(2a);
printf("x1=%g\nx2=%g\n",x1,x2);
}
}
这个只能计算已经化简成aX^2+bX+c=0的一元二次方程
int fun(double a,double b,double c,double x1,double x2)//由于方程既可能无解也可能有两个解,所以不能直接返回X的值{
double p=bb-4ac;//计算Δ
if (p<0)
{
return 0;//方程无解,返回0
}
p=√p//求Δ的平方根
x1=……//用求根公式计算X1
x2=……//用求根公式计算X2
return 1;//方程有解,返回1
}
就这些了,求根公式和求平方根函数我忘了,你自己查一下。头文件要加一个<mathh>。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{float a,b,c;float x1,x2; cin>a>>b>>c;float dlt=bb-4ac;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;}
return 0。
扩展资料:
成立条件:
一元二次方程成立必须同时满足三个条件:
①是整式方程,即等号两边都是整式,方程中如果有分母;且未知数在分母上,那么这个方程就是分式方程,不是一元二次方程,方程中如果有根号,且未知数在根号内,那么这个方程也不是一元二次方程(是无理方程)。
②只含有一个未知数;
③未知数项的最高次数是2。
参考资料来源:百度百科-c语言
1、本题要先判断a,如果a=0,则不是一元二次方程。
2、首先要判断d是否小于0,则只能有虚数解,d小于0时,就不能去开平方,否则会出错。
3、按照以上思路重新修改你的程序。
以上就是关于C语言编写一个求一元二次方程的实根的程序。全部的内容,包括:C语言编写一个求一元二次方程的实根的程序。、c语言编写一元2次方程。、用C语言求解一元二次方程的解怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)