|
|
babyrabbit2006(金币+50, 博学EPI+1):谢谢了啊 2010-12-20 20:36:07
// 二次根.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "math.h"
#include
using namespace std;
class Cercigeng
{
public:
Cercigeng(float aa, float bb, float cc);
~Cercigeng();
//函数返回值:实根的个数;
//参数:x- 用以返回实根值的数组;
long CalResult(float x[]);
private:
float a;
float b;
float c;
};
Cercigeng::Cercigeng(float aa, float bb, float cc)
{
a=aa;
b=bb;
c=cc;
}
Cercigeng::~Cercigeng()
{
}
long Cercigeng::CalResult(float x[])
{
float delta = 0;
long geshu=0;
delta = b*b-4.0*a*c;
if (delta < 0)
{
geshu = 0;
}
else if(fabs(delta)<1e-10)
{
x[0] = (-b+sqrt(delta))/2.0/a;
geshu = 1;
}
else
{
x[0] = (-b+sqrt(delta))/2.0/a;
x[1] = (-b-sqrt(delta))/2.0/a;
geshu = 2;
}
return geshu;
}
int main(int argc, char* argv[])
{
cout<<"求解方程的根!\n"<<"请输入a,b,c";
float a,b,c;
cin>>a>>b>>c;
Cercigeng fangcheng(a,b,c);
float xx[1];
long GeShu = fangcheng.CalResult(xx);
if (GeShu = 0)
{
cout<<"无实根!\n";
}
else if(GeShu = 1)
{
cout<<"方程有一个实根为"<
}
else
{
cout<<"方程有二个实根,分别为"<
}
cout<<"如果继续,请输入1!否则输入其它数字\n";
int jixu=0;
cin>>jixu;
for (;(jixu-1)!=0
{
cout<<"求解方程的根!\n"<<"请输入a,b,c";
cin>>a>>b>>c;
Cercigeng fangcheng(a,b,c);
GeShu = fangcheng.CalResult(xx);
if (GeShu = 0)
{
cout<<"无实根!\n";
}
else if(GeShu = 1)
{
cout<<"方程有一个实根为"<
}
else
{
cout<<"方程有二个实根,分别为"<
}
}
return 0;
}
试试吧,应该没有问题的,我写了一下,但是没有编译运行,好运! |
|