为什么进程 return -1?

why does the process return -1?

运行以下代码:

int main()
{
    double hour[3];
    double charge[3];

    double sum_hour = 0;
    double sum_charge = 0;

    for (int i = 1; i <= 3; i++)
    {
        cout<<"Enter the hours for car No. "<<i<<": ";
        cin>>hour [i];

        if (hour [i] <= 3.0)
            {charge [i] = 2.00;}
        if (hour [i] > 3.0 && hour [i] < 24)
            {charge [i] = 2.00 + (ceil(charge [i] -3))*0.5;}
        if (hour [i] == 24.0)
            {charge [i] = 10.00;}

        sum_hour  = sum_hour + hour [i];
        sum_charge = sum_charge + charge [i];
    }

    cout<<"Car"<<setw(10)<<"Hours"<<setw(10)<<"Charge"<<endl;


}

我在 for 循环 执行后收到以下消息并且代码没有 运行 cout循环后:

Process returned -1 (0xFFFFFFFF) execution time...

在循环 for (int i = 1; i <= 3; i++) 中,数组索引应该从 0 开始。将循环更改为:

for (int i = 0; i < 3; i++)

i is 3 这里 cin>>hour [i]; 时,您的数组索引超出范围,这是未定义的行为。

这里要补充,不要做浮点比较:

if (hour [i] <= 3.0)// 

尽管这与您的原始问题无关,请阅读 Why doesn't my floating-point comparison work?