因为没有检查第二个条件

时间:2015-09-17 16:58:49

标签: c for-loop

您可以在下面看到我的代码。我试图检查输入数字的总和是否大于100,或者输入的数字之一是否大于20.如果其中一个发生,程序应该退出。如果我输入数字以使总和高于100,则程序退出。但如果我输入的数字高于20,程序就会继续运行。

#include <stdio.h>
#include <string.h>

int main() {

    int numbers;
    int sum = 0;

    printf("Please enter numbers:\n");

    for (numbers = 0; sum < 100 || numbers < 20; numbers++) {
        scanf("%d", &numbers);
        sum += numbers;
    }
    printf("Sum: %d\n", sum);


    return 0;
}

1 个答案:

答案 0 :(得分:3)

  

如果其中一个发生,程序应该退出

您想要&&,而不是||。想一想;如果sum小于100或numbers小于20,则您的程序会继续。因此,当您为numbers输入大于20的值时,除非sum也大于100,否则您的代码将继续运行。