Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
hepr
61 / 33 / 13
Регистрация: 21.10.2010
Сообщений: 538
#1

Округлить число не используя вещественненную арифметику - C++

20.01.2012, 20:42. Просмотров 746. Ответов 7
Метки нет (Все метки)

Здравствуйте, есть два int a и b
Они принимают какие-либо значения, как можно округлить результат их деления не используя вещественненную арифметику
Ну предположим так:
a=3;
b=2;
Результат должен быть равен 2, так как 3/2 = 1.5, а 1.5 округляется до 2
Как это можно реализовать?
Заранее спасибо !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 20:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Округлить число не используя вещественненную арифметику (C++):

Поиск минимального элемента в трёхмерном массиве, используя адресную арифметику
1. Написать программу поиска минимального элемента в трёхмерном массиве используя адресную арифметику. не понимаю как создать трехмерный...

Найти длину указанного слова в строке, используя адресную арифметику
Написал код для нахождения длины указанного слова в строке, вот теперь надо сделать тоже самое толко используя адресную...

Округлить число
Ну начнём))) Во-первых Visual Studio 10(Roudn и Trunc не видно) Во вторых float и cell +-.5 не подоходят так ,как числа могут поподаться...

как округлить число?
нужно чтобы от числа F выводило только целую часть, пример f=5.4 --->5 f=5.8 --->5 как это сделать????

Как округлить число с 19 до 20
Вопрос в заголовке. Прошу подсказать.

Как округлить число до сотых?
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Мне 11 лет, и я учусь программировать на С++. У меня есть программа,...

7
dimcoder
Полярный
467 / 440 / 157
Регистрация: 11.09.2011
Сообщений: 1,142
20.01.2012, 20:43 #2
Оно автоматом округляется. Только в вашем случае до 1.
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.01.2012, 20:44 #3
Цитата Сообщение от dimcoder Посмотреть сообщение
Оно автоматом округляется.
В данном случае округлится до 1
0
mansp
18 / 18 / 7
Регистрация: 07.11.2010
Сообщений: 136
20.01.2012, 20:45 #4
инты не могут быть десятичными , это только целые числа
... и вправду округлится до 1....
0
lock
1 / 1 / 1
Регистрация: 11.01.2012
Сообщений: 4
20.01.2012, 20:51 #5
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cmath>
 
int main() {
 
    int a(3), b(2);
 
    std::cout << lround((double)a/b);
 
    return 0;
}
1
R136a1
143 / 112 / 36
Регистрация: 14.04.2011
Сообщений: 261
20.01.2012, 20:53 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cmath>
 
int main()
{
        int a, b;
 
        std::cin >> a >> b;
 
        std::cout << std::ceil(static_cast< double >(a)/b) << std::endl;
 
        return 0;
}
1
Mr.X
Эксперт С++
3178 / 1705 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
20.01.2012, 22:23 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/////////////////////////////////////////////////////////////////////////////////////////
//Округлить число не используя вещественную арифметику.
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
int  int_round
    (
        int  L,
        int  R
    )
{
    return (L + R / 2) / R;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout   << "Введите целые операнды для целочисленного деления с округлением:"   
                << std::endl;
 
    for(;;)
    {
        std::cout   << '\t'
                    << "левый операнд:"
                    << '\t';
                    
        int  L = 0;
        std::cin >> L;
 
        std::cout   << '\t'
                    << "правый операнд:"
                    << '\t';
                    
        int  R = 0;
        std::cin >> R;
 
        if(R == 0) break;
 
        std::cout   << "int_round("
                    << L
                    <<  " / "
                    << R
                    << ") = "                    
                    << int_round(L, R)
                    << std::endl
                    << std::endl
                    << std::endl;
    }   
}
1
mansp
18 / 18 / 7
Регистрация: 07.11.2010
Сообщений: 136
20.01.2012, 22:34 #8
Цитата Сообщение от Mr.X Посмотреть сообщение
C++
1
    std::locale::global(std::locale(""));
Что значит это строка? или вернее что она делает?
0
20.01.2012, 22:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2012, 22:34
Привет! Вот еще темы с решениями:

Как округлить число типо float?
Как округлить число типо float до определенного числа знаков после запятой?

Округлить заданное число до ближайшей сотни
Помогите решить плиз Задано неотрицательное целое число N. Округлить до ближайшей сотни. 50 округлять вверх.

Округлить число к его ближнему целому значению
Дано число х, округлить его к ближнему целому значению

Округлить число до 25 знаков после десятичной точки
Есть простая задача: вот я ее решаю таким способом, т.к в задании написано округлить #include &lt;fstream&gt; #include &lt;string&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru