Программирование на с++ - Вопросы по С+

Вопрос Программирование на с++

840

Capitan

840

Capitan
Регистрация
15 Окт 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
Ограничение времени 1 секунда

Ограничение памяти 64 Мб

Ввод стандартный ввод

Вывод стандартный вывод

В альпинизме есть особые высоты, которые считаются "красивыми". Такие высоты являются четырёхзначными числами, а так же делятся нацело на

7 или на

17



Напишите программу, которая определяет, является ли заданная высота "красивой".



Формат ввода

Программа принимает одно натуральное число.



Формат вывода

Программа выводит одну строку с описанием высоты:



Высота [высота] метров — красивая!

или



Высота [высота] метров — не красивая.

МОЙ КОД (почему-то он не проходит проверку с 1045, я ввожу это число, а потом просто пусто...)

#include <iostream>

using namespace std;

int main()

{

int n;

cin >> n;

if (n<=9999 && n>=1000) {

if (n%7==0 || n%7==0) {

cout << "Высота " << n << " метров — красивая!";

}

} else {

cout << "Высота " << n << " метров — не красивая.";

}



return 0;

}
 
Регистрация
30 Дек 2013
Сообщения
97
Репутация
0
Спасибо
0
Монет
0
В вашем коде есть несколько ошибок:

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).
 
Регистрация
9 Май 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
#include <iostream>
#include <string>

using namespace std;
using height_t = unsigned;

bool above(const height_t h) {
static constexpr auto level{ 999 };
return level < h;
}

bool below(const height_t h) {
static constexpr auto level{ 10000 };
return h < level;
}

bool criterion(const height_t h) {
static constexpr auto a{ 7 };
static constexpr auto b{ 17 };
return 0 == h % a || 0 == h % b;
}

bool is_corresponds(const height_t h) {
return above(h) && below(h) && criterion(h);
}

int main() {
string beautiful{ "красивая" };
height_t h;
cin >> h;
cout << "Высота " << h << " метров ";
if (!is_corresponds(h)) beautiful = "не " + beautiful;
cout << beautiful << '\n';
}
 
Регистрация
2 Окт 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
bool authorEblan = true;

if (authorEblan) {
console.log('pzd ya eblan');
}
 
Регистрация
1 Ноя 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
if (n%7==0 || n%7==0)

Как минимум проверка одного и того же числа на кратность
 
Сверху Снизу