看看有什么问题 运行结果只有0或1

#include
using namespace std;
int main()
{
int a;
int d = 0;
int y = 0;
cout << "请输入一系列正整数(输入0或者负数为结束)" << endl;
cin >> a;

do {

    if ((a % 2) == 0)

    {
        d++;
    }
    else {
        y++;
    }
    cin >> a;

} while (a == -1);
cout << "偶数的个数为:" << d << endl;
cout << "奇数的个数为:" << y << endl;

return 0;

}

a != -1,while (a == -1)那部分错了

#include<iostream>
using namespace std;
int main()
{
int a;
int d = 0;
int y = 0;
cout << "请输入一系列正整数(输入0或者负数为结束)" << endl;
cin >> a;
do {
    if(a % 2 == 0)
    {
        d++;
    }
    else {
        y++;
    }
    cin >> a;
}while (a != -1);
cout << "偶数的个数为:" << d << endl;
cout << "奇数的个数为:" << y << endl;
 
return 0;
}