【发布时间】:2013-04-17 13:03:08
【问题描述】:
到目前为止,这是我的代码。因为我一直得到一个不正确的答案,所以似乎有什么问题。我正在编写一个格式化的文本文件: 2 3.0 1.0
2 是数组的大小,然后 3.0 和 1.0 是系数。希望我的解释没有遗漏太多。任何帮助将不胜感激。 谢谢
double polyeval(double* polyarray, double x, int arraySize)
{
//int result = 0;
if(arraySize == 0)
{
return polyarray[arraySize];
}
//result += x*(polyarray[arraySize]+polyeval(polyarray,x,arraySize-1));
return polyarray[arraySize-1]+ (x* (polyeval(polyarray,x,arraySize-1)));
//return result;
}
int main ()
{
int arraySize;
double x;
double *polyarray;
ifstream input;
input.open("polynomial.txt");
input >> arraySize;
polyarray = new double [arraySize];
for (int a = arraySize - 1; a >= 0; a--)
{
input >> polyarray[a];
}
cout << "For what value x would you like to evaluate?" << endl;
cin >> x;
cout << "Polynomial Evaluation: " << polyeval(polyarray, x, arraySize);
delete [] polyarray;
}
如果我读入一个大小不同的格式的文本文件,它将解决用户给定的任何值 x 的想法
【问题讨论】:
-
一个额外的错误。 polyeval 应该返回一个 double,而不是一个 int。
-
谢谢...然后将 double polyeval() 声明为函数而不是 int polyeval() 是否有意义?
-
是的,这正是我的意思,结果和返回类型都应该是双倍的。 (虽然你并没有真正使用结果,它可以被删除)
-
是的,我删除了结果,因为 tacp 提示我在下面做