关于#c语言#的问题

这个排除含有特定数字的数再统计剩下的个数,但是我真的看不出有什么问题了

img

【以下回答由 GPT 生成】

问题的问题在于循环中对变量b的修改,你在for循环中使用了b作为循环变量,但是在循环体内又对b进行了修改,导致循环变量失效,无法达到你的预期。解决办法是使用一个新的变量来进行循环。

#include<stdlib.h>
int main() {
    int a, b, c, d;
    int x=0;
    int i=0;
    scanf("%d", &a);
    for(int num=0; num<=a; num++) {
        b = num;
        do {
            c=b%10;
            if(c==1 || c==5) {
                x+=1;
            }
            b=b/10;
        } while(b>0);
        if(x>0) {
            i+=1;
        }
        x=0;
    }
    d=a-i;
    printf("%d", d);
}

以上是修改后的代码,其中使用一个新的变量num来作为循环变量,而将num赋值给 b来进行计算。这样循环变量就能正确地进行迭代了。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

你咋stdio.h都没有

供参考:

img

进行循环时,变量b被用作了临时变量,但是它的值也被修改了,这会导致循环出现问题,可以使用另一个临时变量