Я не уверен, почему этот код не работает должным образом. "input% 7! = 3 || input% 7! = 4)". Я говорю, если ввод modulo 7 не равен 3 или 4, тогда оставайтесь в цикле. Однако, когда я вхожу 10 он по-прежнему не работает, когда 10 по модулю 7 равна 3.Loops and Modulo
#include <iostream>
#include <string>
using namespace std;
int main(){
int input;
int count = 1;
cout << "Please Enter a positive integer that is 3 or 4 modulo 7: ";
cin >> input;
while (input <= 0 || input % 7 != 3 || input % 7 != 4){
count++;
cout << count << "tries, " << "please try again: ";
cin >> input;
}
cout << "Congratulations, you passed";
return 0;
}
Он будет зацикливаться, если _any_ из этих условий верны. ** 1. ** 'Входной сигнал равен 0 или меньше. ** ** **. ** Вход/7 не содержит остатка 3.' ** 3. **' Вход/7 не есть остаток 4.' --- Теперь вы видите, почему он не работает, как вы ожидаете? – byxor
Вы уверены в OR (||), а не AND (&&)? '10% 7! = 3' неверно, но' 10% 7! = 4' истинно. Таким образом, цикл успешно переходит к следующей итерации. Вам нужно использовать '&&', если вы хотите, чтобы элемент управления выходил в случае 3 и 4. –