初学者,不知道怎么回事,调试了发现在循环入口就不运行了,感觉是do while做不了循环,还有就是不知道为什么dowhile条件不对。(希望可以解答一下)

在编译时显示没有错误,进入界面,只能输入一个数,应该是后面的程序都没有循环了,实在没有找到什么问题。

img

img

img

m<0才进while循环呢

修改如下,供参考:

#include <stdio.h>
int main()
{
    int m, n = 1, x = 0, sum = 0;
    scanf_s("%d", &m);
    while (m) {   //(m < 0)
        x = m % 10;
        if (x % 2 == 0)
            sum += x;  //偶数位和
        m /= 10;
        if (m > 0)
            n *= 10;  //权位
    }
    printf("权位为:%d\n", n);
    printf("偶数位和:%d\n", sum); //修改
    return 0;
}