菜j上路。哪个好兄弟解释一下,这个删除数组里面所有的8,哪里出问题了




```c++

#include<iostream>
using namespace std;
int main()
{
    int a[20]; int k = 20;
    for (int i = 0; i <20; i++)
    {
        cin >> a[i];
        cout << a[i] << " ";
            if (i+1 % 10 == 0 )
            {
                cout << endl;
            }
    }
    for (int i = 0; i < k; i++)
    {
        if (a[i] == 8)
        {
            for (; i < k-1; i++)
            {
                a[i] = a[i+1];
            }
            k--;
        }
    }
    cout << endl;
    for(int i=0;i<k;i++)
    cout << a[i] << " ";
}
```c++


i在里面被修改了,换个变量,否则i在里面一直加,只判断了一个8外层for循环就结束了

for (int i = 0; i < k; i++)
    {
        if (a[i] == 8)
        {
            for (int j=i; j < k - 1; j++)
            {
                a[j] = a[j + 1];
            }
            k--;
            i--;
        }
    }