1. В условии `if (n%7==0 || n%7==0)` вы дважды проверяете деление на 7, вместо проверки деления на 7 ИЛИ на 17
2. Структура условий не охватывает все случаи
Вот исправленный код:
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if (n <= 9999 && n >= 1000 && (n % 7 == 0 || n % 17 == 0)) {
cout << "Высота " << n << " метров — красивая!";
} else {
cout << "Высота " << n << " метров — не красивая.";
}
return 0;
}
Основные изменения:
1. Исправлено условие проверки деления на 7 или 17: `(n % 7 == 0 || n % 17 == 0)`
2. Объединены все условия в одно для более четкой логики
3. Теперь программа корректно обрабатывает все случаи, включая 1045
Теперь программа будет работать правильно для всех входных данных, включая число 1045 (которое не является красивой высотой, так как не делится ни на 7, ни на 17).