如果想要n=0时停止运行应该怎么改?

为什么循环到后面n=0时代码不会停止运行,明明有逻辑运算符判断啊?
如果让n=0时程序停止运行,应该怎么改动?

img

判断要明确写==0或者>0需要明白的是在C++中除了0之外有值都是真的包括负数。

【以下回答由 GPT 生成】

#include <stdio.h>

int main() {
    int n, m, a, sum;

    while (scanf("%d", &n) && n) {
        sum = 0;
        while (n & (m--)) {
            scanf("%d", &a);
            sum += a;
            n = n - 1;
        }

        printf("sum = %d\n", sum);
        printf("n = %d\n", n);
    }

    return 0;
}

对于你的代码中的外层循环,判断条件是while (scanf("%d", &n) && n),这个条件只判断n是否非零,而不会判断n是否小于或等于0。所以在输入n为0时,循环不会结束。

为了使循环在n等于0时停止运行,你可以将循环条件改为while (scanf("%d", &n) && n > 0),这样循环会一直执行,直到n等于0或小于0时才会终止。

修改后的代码如下:

#include <stdio.h>

int main() {
    int n, m, a, sum;

    while (scanf("%d", &n) && n > 0) {
        sum = 0;
        while (n & (m--)) {
            scanf("%d", &a);
            sum += a;
            n = n - 1;
        }

        printf("sum = %d\n", sum);
        printf("n = %d\n", n);
    }

    return 0;
}

这样,当输入的n为0时,外层循环会结束,程序会停止运行。希望这可以帮助到你!如有更多问题,请随时提问。 ```



【相关推荐】



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