c++怎么用do while输出一系列正整数其中的奇偶数个数

c++怎么用do while输出一系列正整数其中的奇偶数个数,
#include
using namespace std;
int main() {
int n,i = 0, j = 0;
cout << "请输入正整数" ;
do
{
cin>>n;
if (n %2== 0) i++;
if (n %2== 1)j++;
}
while(n>=0);
cout << "偶数个数为:" << i << endl;
cout << "奇数个数为:" << j << endl;
return 0;
}


int main()
{
    int n = 20;
    int i = 1;
    int a = 0, b = 0; // a:奇数个数, b:偶数个数
    do
    {
        if (i % 2 == 0)
            b++;
        else
            a++;
        i++;
    } while (i <= n);  
    printf("奇数个数: %d\n", a);
    printf("偶数个数: %d\n", b);
    return 0;
}