在for循环中获取无效的数组类型,不允许我填充数组sivalues。它不会用x
打造数组int main () {
double a,b,increment,para;
int N;
cout<< "enter values for (a,b,N)";
cin>>a;
cin>>b;
cin>>N;
increment= (b-a)/(N-1);
double sivalues[N];
for (double x=a;x<=b;x+=increment){
sivalues[x]=si(x);
cout<<"si("<<x<<") = "<< sivalues[x];
}
system("PAUSE"); return 0;
}
答案 0 :(得分:2)
当您编写sivalues[x]
时,您使用double
作为数组索引。这是无效的,因为获取数组的第2.5个元素是没有意义的。因此,您需要将double
投射到int
。
您可以使用默认转换(例如:sivalues[int(x)]=si(x);
。请注意此转换不会舍入,因此如果x为5.99,它仍将转换为5(请参阅C++: How to round a double to an int?)< / p>