您的位置:首页 > 其它

秦九韶 求多项式方程的值

2009-11-10 20:28 134 查看
 
#include <iostream>

using namespace std;
double polynomial(int rank, double* coefficient, double x)
{
int i=0;
double sum=0.0;
for (i=0;i<rank;i++)
{
sum =sum*x + coefficient[i];

}
return sum;
}

void calPolynomial()
{
double sum =0;
int i=0;
int rank=0;
double x=0.0;

//-------开始初始化多项式中的阶数,系数---------------
cout<<"请输入你要求的多项式阶数 :"<<endl;
cin>>rank;
cout<<"您需要输入"<<rank<<"阶多项式方程的系数,按降幂排列"<<endl;
double *coefficinet = new double[rank];//------用于存储系数
for(i=0;i<rank;i++)//---------这个数组用于循环输入系数
cin>>coefficinet[i];
cout<<"请输入未知数的值 :"<<endl;
cin>>x;
cout<<endl;
//-----------------开始计算多项式---------------------
sum =polynomial(rank,coefficinet,x);
cout<<"sum = "<<sum<<endl;

}

void main()
{
//------定义数据----------

while(1)
{
int i=0;
cout<<"如果您想继续计算请输入 :1 ,否则输入其他 :"<<endl;
cin>>i;
switch (i)
{
case 0:
exit(1);
break;

case 1://------------计算多项式方程---------------------------------
calPolynomial();
break;

default ://======================initialization of 'coefficinet' is skipped by 'default' label
exit(1);
break;

}
}

}


 

原先的错误程序,以供借鉴:

/************************************************************************/
/* 总结:
不要在switch()case 中定义变量,否则老是出错: initialization of 'x' is skipped by 'default' label                                                                    */
/************************************************************************/

#include <iostream>

using namespace std;
double polynomial(int rank, double* coefficient, double x)
{
int i=0;
double sum=0.0;
for (i=0;i<rank;i++)
{
sum =sum*x + coefficient[i];

}
return sum;
}

void main()
{
//------定义数据----------

while(1)
{
int i=0;
cout<<"如果您想继续计算请输入 :1 ,否则输入其他 :"<<endl;
cin>>i;
switch (i)
{
case 0:
exit(1);
break;

case 1://------------计算多项式方程---------------------------------
double sum =0;//==========nitialization of 'coefficinet' is skipped by 'default' label

int rank=0; //==========initialization of 'rank' is skipped by 'default' label
double x=0.0;//======== initialization of 'x' is skipped by 'default' label

//-------开始初始化多项式中的阶数,系数---------------
cout<<"请输入你要求的多项式阶数 :"<<endl;
cin>>rank;
cout<<"您需要输入"<<rank<<"阶多项式方程的系数,按降幂排列"<<endl;
double *coefficinet = new double[rank];//------用于存储系数
for(i=0;i<rank;i++)//---------这个数组用于循环输入系数
cin>>coefficinet[i];
cout<<"请输入未知数的值 :"<<endl;
cin>>x;
cout<<endl;
//-----------------开始计算多项式---------------------
sum =polynomial(rank,coefficinet,x);
cout<<"sum = "<<sum<<endl;

break;

default ://======================initialization of 'coefficinet' is skipped by 'default' label
exit(1);
break;

}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息