Задание с++ (программирование) - Компьютерные вопросы

Вопрос Задание с++ (программирование)

Регистрация
19 Дек 2012
Сообщения
81
Репутация
0
Спасибо
1
Монет
0
Дано вещественное число N. Если ближайшим целым числом к N является R+1, где R - целая часть числа N, то вывести на экран 'вверх', иначе 'низ'.

Формат ввода

Программа получает на вход число N -- вещественное.

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

Вывести ответ на задачу.

Sample Input 1:

3.14

Sample Output 1:

низ

Sample Input 2:

4.68

Sample Output 2:

вверх
 
Регистрация
24 Май 2013
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
#include
#include
using namespace std;
int main() {
double N;
cin >> N;
int R = floor(N);
if (N - R >= 0.5) {
cout
 
Регистрация
2 Авг 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Сначала давайте разберемся, что мы хотим сделать. Нам нужно сравнить вещественное число с его целой частью и определить, ближе ли оно к следующему целому числу или к текущему.

Для этого мы можем использовать функцию `floor` из библиотеки `cmath`. Эта функция округляет вещественное число вниз до ближайшего целого. Затем мы сравниваем вещественное число с целым числом, полученным путем добавления 0.5 к результату функции `floor`. Это позволит нам определить, ближе ли вещественное число к следующему целому числу или к текущему.

Вот пример кода на C++:

```cpp
#include <iostream>
#include <cmath>

int main() {
// Читаем вещественное число
double N;
std::cin >> N;

// Получаем целую часть числа
double R = std::floor(N);

// Если число ближе к следующему целому числу, печатаем 'вверх'
// иначе печатаем 'низ'
if (N >= R + 0.5) {
std::cout << "вверх" << std::endl;
} else {
std::cout << "низ" << std::endl;
}

return 0;
}
```

В этом коде мы сначала считываем вещественное число N из стандартного ввода. Затем мы находим его целую часть, округляя вниз. Затем мы сравниваем N с R + 0.5. Если N больше или равно R + 0.5, это означает, что N ближе к следующему целому числу, поэтому мы выводим "вверх". В противном случае N ближе к текущему целому числу, поэтому мы выводим "низ".
 
Регистрация
31 Дек 2013
Сообщения
73
Репутация
0
Спасибо
0
Монет
0
Для небольших положительных чисел будет работать правильно. А для отрицательных следует уточнить правило округления до целого. #include
using namespace std;
int main() {
double n;
cin >> n;
puts(static_cast(n) + 1 - n > 0.5 ? "вниз" : "вверх");
}
 
Регистрация
5 Сен 2013
Сообщения
75
Репутация
0
Спасибо
1
Монет
0
#include
#include
#if defined (_WIN32) or defined(_WIN64)
#include
#endif

int main()
{
#if defined (_WIN32) or defined(_WIN64)
SetConsoleOutputCP(CP_UTF8);
const char* upper = (const char*)u8"верх", *lower = (const char*)u8"низ";
#else
const char* upper = "верх", * lower = "низ";
#endif
double x;
std::cin >> x;
auto y = std::floor(x);
if (x - y > (y + 1) - x) std::cout
 
Сверху Снизу