程序在调用函数后不会运行到最后

时间:2016-03-10 01:56:27

标签: c++ arrays function for-loop

我编写了一个程序来接受一个数组中的15个整数值,然后将这个数组传递给一个函数,该函数将每个偶数索引值乘以4。

目前程序显示初始数组,但似乎在显示修改后的数组之前它已挂起。

请帮助我理解为什么程序会卡在这里!

    int main(){
    const int SIZE = 15;
    int quad[SIZE] = {};
    void quadruple(int[], const int);

    cout << "Enter 15 integer values into an array." << endl;
    for (int i = 0; i < SIZE; i++)                               // Accept 15 int values
    {
        cout << i << ": ";
        cin >> quad[i];
    }

    cout << "Before quadruple function is called: " << endl;
    for (int i = 0; i < SIZE; i++)
    {
        cout << quad[i] << " ";
    }
    cout << endl;

    quadruple(quad, SIZE);
    cout << "After even index value multiplication: " << endl;
    for (int i = 0; i < SIZE; i++)
    {
        cout << quad[i] << " ";
    }
    cout << endl;

    return 0;
}

void quadruple(int values[], const int SZ){
    for (int i = 0; i < SZ; i + 2)                // Multiply even values by 4
    {
        if ((i % 2) == 0)
        {
            values[i] = values[i] * 4;
        }
        else                                      // Keep odd values the same
        {
            values[i] = values[i] * 1;
        }
    }
}

1 个答案:

答案 0 :(得分:3)

for (int i = 0; i < SZ; i + 2)     

“i + 2”没有做任何事情。

你可能意味着“i + = 2;”。

您的家庭作业是找到有关系统调试器的一些文档。并找到你的橡皮鸭的位置,正如评论中所建议的那样。