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

C语言编写一个求一元二次方程的实根的程序。,第1张

步骤:

打开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语言求解一元二次方程的解怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9394734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存