为什么进程返回-1?

时间:2015-01-21 11:35:08

标签: c++ arrays for-loop

运行以下代码:

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...

1 个答案:

答案 0 :(得分:3)

在循环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)// 时,您的数组索引超出范围,其未定义的行为。

要在此处添加,请不要进行浮点比较:

{{1}}

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