为什么我这段代码不行?

img

我的代码
题目

img

请教一下为什么我的不行?但是博主的代码可行,差距在哪里。
而且我提问题的时候复制代码,提示需要代码控件是什么?


int a = 0, c = 0, d = 0;
do
{
    scanf("%d",&a);
    if (a > 0 && a < 1000000)
    {
        if (a % 2 == )
        {
            c++;
        }
       else
       {
            d++;
       }
   }
}while(a != -1);
do-while,因为a只进行了初始化就被你拿去进行while判断肯定是不行的,应该是先从键盘输入再进行判断

这个你有个地方错了,scanf(''%d'',&a);应该在a前面加一个取地址符号,不然输入就无效。你试试应该可以解决了

1、参数a未初始化就使用,a会是随机值,不一定能进入while里面,建议修改
2、scanf输入一般要指定地址,整型的数据要加上&符号,这里的应该为
scanf("%d",&a);

int a = 0, c = 0, d = 0;
scanf("%d",&a);
while(a != -1)
{
    if (a > 0 && a < 1000000)
    {
        if (a % 2 == )
        {
            c++;
        }
       else
       {
            d++;
       }
   }
   scanf("%d",&a);
}

或者

int a = 0, c = 0, d = 0;
do
{
    scanf("%d",&a);
    if (a > 0 && a < 1000000)
    {
        if (a % 2 == )
        {
            c++;
        }
       else
       {
            d++;
       }
   }
}while(a != -1)