有个c++的问题?!



#include<iostream>
using namespace std;
int main() {
    int n, i;
    int arr[100];
    int prr[100];
    int drr[100];
    
    
    while (cin >> n) {
        int b = 0;
        int d = 0;
        int k=0;
        int k2=0;
        for (i = 0; i < n; i++) {
            cin >> arr[i];
        }
        for (i = 0; i < n;) {
            
            if (arr[i] % 2 == 0) {
                drr[d] = arr[i];
                d++;
                k2++;

            }
            else {
                prr[b] = arr[i];
                k++;
                b++;
            }
            i++;
            
        }
        for (b = 0; b < k; b++) {
            cout << prr[b] << " ";
        }
        for (d = 0; d < k2-1; d++) {
            cout << drr[d] << " ";
        }
        cout << drr[k2-1] << endl;
        
    }
    return 0;
}
    

img

通过了一半,还有一些漏洞?

啥叫一半?最后的输出是有问题的,如果输入的数字中没有偶数呢?最后还会是空格字符
应该改成第一个只输出数字,不输出空格,后面每个数字都是先输出空格,再输出数字