获取数组类型的无效错误

时间:2017-04-02 04:22:21

标签: c++

在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;

}

1 个答案:

答案 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>