为什么这个按回车只换行不运行啊(标签-c++|关键词-do while)

img

#include
using namespace std;
int main ()
{
int a,b=0,c=0,d;
cout<<"请输入一系列正整数(输入0或负数表示结束):"<
cin>>a;
do
{
do
{
d=a%2,b++;
}while(a>0&&d==1);
c++,b=b-1;
}while(a>0);
cout<<"奇数个数为:"<
cout<<"偶数个数为:"<
return 0;
}

题目是这个

img

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

循环里a的值没有变,外层循环是死循环