#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; } } }