用C++解决一元二次方程根的问题集锦.docx

上传人:b****1 文档编号:846326 上传时间:2022-10-13 格式:DOCX 页数:13 大小:18.51KB
下载 相关 举报
用C++解决一元二次方程根的问题集锦.docx_第1页
第1页 / 共13页
用C++解决一元二次方程根的问题集锦.docx_第2页
第2页 / 共13页
用C++解决一元二次方程根的问题集锦.docx_第3页
第3页 / 共13页
用C++解决一元二次方程根的问题集锦.docx_第4页
第4页 / 共13页
用C++解决一元二次方程根的问题集锦.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

用C++解决一元二次方程根的问题集锦.docx

《用C++解决一元二次方程根的问题集锦.docx》由会员分享,可在线阅读,更多相关《用C++解决一元二次方程根的问题集锦.docx(13页珍藏版)》请在冰豆网上搜索。

用C++解决一元二次方程根的问题集锦.docx

用C++解决一元二次方程根的问题集锦

c++求一元二次方程ax^+bx+c=0的根

#include

#include

#defineESSP0.00000001

voidmain()

{

doublea,b,c,delta,root1,root2;

cout<<"Pleaseinputa:

";

cin>>a;

cout<<"Pleaseinputb:

";

cin>>b;

cout<<"Pleaseinputc:

";

cin>>c;

delta=b*b-4*a*c;

if(delta<-ESSP)

cout<<"Thisequationhasnorealroot."<

elseif(delta>ESSP)

{

root1=(-b+sqrt(delta))/(2*a);

root2=(-b-sqrt(delta))/(2*a);

cout<<"Thisequtionhastwounequalizeroots:

"<

}

else

{

root1=-b/(2*a);

cout<<"Thisequtionhastwoequalizeroots:

"<

}

}

结构化编程方法:

//fortworoots

#include

#include

intmain()

{

doublea,b,c,rp,ip;//方程系数

doublex1,x2;//方程的根

doubled;//根的判别式

cout<<"inputa,b,c(方程系数):

";

cin>>a>>b>>c;

if(a==0)

cout<<"这不是二元一次方程";

else

{

d=b*b-4*a*c;

if(d>=0)

{

if(d==0)

{

x1=-b/(2*a);

cout<<"只有一个实根:

"<

}

else

{

x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a);

cout<<"有二个实根:

"<

}

}

else

{rp=-d/(2*a);

ip=sqrt(-d)/(2*a);

x1=rp+ip;

x2=rp-ip;

cout<<"有二个虚根:

"<

}

}

return0;

}

简单的类对象:

#include"iostream.h"

#include"math.h"

classFindRoot

{

private:

floata,b,c,d;

doublex1,x2;

public:

FindRoot(floatx,floaty,floatz);

voidFind();

voidDisplay();

};

FindRoot:

:

FindRoot(floatx,floaty,floatz)

{

a=x;

b=y;

c=z;

d=b*b-4*a*c;

}

voidFindRoot:

:

Find()

{

if(d>0)

{

x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(a*a);

}

elseif(d==0)

{

x1=x2=(-b)/(2*a);

}

else

{

doublerp=-d/(2*a);

doubleip=sqrt(-d)/(2*a);

x1=rp+ip;

x2=rp-ip;

}

}

voidFindRoot:

:

Display()

{

if(d>0)

{

cout<<"x1="<

}

elseif(d==0)

{

cout<<"x1=x2="<

}

else

{

cout<<"x1="<

cout<<"x2="<

}

}

voidmain()

{

FindRootobj(1,2,3);

obj.Find();

obj.Display();

}

根据要求编写程序。

①从键盘输入三个实数a、b、c分别作为一个一元二次方程ax2+bx+c=0的三个系数。

使用系

统给出的平方根函数,编写一段程序,使之求出这个方程的两个根。

其中,求△=b2-4*a*c

的功能要以函数形式出现。

(提示:

求根公式,△<0时方程无解)

②已知a1=1,a2=1,当n大于等于2时,a(n+1)=3*a-a(n-1),要求用递归函数输出a1到a8。

#include"stdio.h"

#include"math.h"

voidmain()

{

floata,b,c,x1,x2,disc,realpart,imagpart;

printf("请输入三个数值\n");

scanf("%f%f%f",&a,&b,&c);

disc=b*b-4*a*c;

if(a==0)

printf("该方程不是一元二次方程组\n");

elseif(disc==0)

{

x1=(-b)/(2*a);

x2=(-b)/(2*a);

printf("x1=%.2f\tx2=%.2f\n",x1,x2);

}

elseif(b*b-4*a*c>0)

{

x1=(-b)+sqrt(disc);

x2=(-b)-sqrt(disc);

printf("x1=%.2f\tx2=%.2f\n",x1,x2);

}

else

printf("b²-4ac<0,该方程没有实根\n",x1,x2);

}

#include"stdio.h"

inta[8]={0};

intgetResult(intn)

{

if(n==1||n==2)

{

return1;

}

else

{

return3*getResult(n-1)-getResult(n-2);

}

}

voidmain()

{

inti;

a[0]=1;

a[1]=1;

for(i=2;i<8;i++)

a[i]=getResult(i+1);

for(i=0;i<8;i++)

printf("a%d=%d\n",i+1,a[i]);

}

用C语言编写一个程序,计算一元二次方程的解(x1,x2)。

一元二次方程:

Ax2+Bx+C=0(假设A=4,B=6,C=1)

按顺序输入a,b,c

#include"stdio.h"

#include"stdlib.h"

#include"math.h"

intmain(){

floata,b,c;

scanf("%f",&a);

scanf("%f",&b);

scanf("%f",&c);

printf("%f\n",(-b+sqrt(b*b-4*a*c))/2/a);

printf("%f",(-b-sqrt(b*b-4*a*c))/2/a);

system("pause");

return0;

};

解一元二次方程的C++程序

#include

#include

#include

voidsqrt1(double,double);

voidsqrt2(double,double);

voidprinter(double,double);

voidmain()

{

floata,b,c;

doublex1,x2;

cout<<"请输入a,b,c:

"<

cin>>a>>b>>c;

if(b*b-4*a*c!

=0)

{

if(b*b-4*a*c)

{

sqrt1(x1,x2);

}

else

{

printer(x1,x2);

}

}

else

{

sqrt2(x1,x2);

}

}

voidsqrt1(doublex1,doublex2)//b*b-4ac>0

{

floata,b,c;

if(a!

=0)

{

x1=(-b+sqrt(b*b-4*a*c))/(2*a);

x2=(-b-sqrt(b*b-4*a*c))/(2*a);

cout<<"x1="<

}

else

{

if(b==0)

{

if(c==0)

cout<<"x为任意解"<

else

cout<<"无解"<

}

else

{

x1=x2=-c/b;

cout<<"x1="<<"x2="<

}

}

}

voidsqrt2(doublex1,doublex2)//b*b-4ac=0

{

floata,b,c;

x1=x2=-b/(2*a);

cout<<"x1="<<"x2="<

}

voidprinter(doublex1,doublex2)//b*b-4ac<0

{

floata,b,c;

chari='i';//i后面为虚部

x1=(-b/(2*a))+(i*(sqrt(b*b-4*a*c)/(2*a)));

x2=(-b/(2*a))-(i*(sqrt(b*b-4*a*c)/(2*a)));

cout<<"x1="<

}

用C++编几个程序

1编写一个程序求一元二次方程的解。

讨论下述情形:

(1)a=0,不是二次方程。

(2)b^2-4ac=0,有两个相等实根。

(3)b^2-4ac>0,有两个不等实根。

(4)b^2-4ac<0,有两个复根(表示成x+yi,x-yi)。

2.编写一个程序,打印下列图形:

1

12

123

1234

12345

3.编写一个函数将一nxn矩阵转置(即a[i][j]与a[j][i]的值交换),然后编写一main()

函数调用它(取n=3)。

第1个我记得书上有例题的

第2个:

#include

intmain()

{

for(inti=1;i<=5;i++)

{

for(intj=1;j<=i;j+

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1