Форум программистов, компьютерный форум CyberForum.ru

При делении 2 на 4 результат - 0 - C++

Восстановить пароль Регистрация
 
Chacka
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 3
20.03.2014, 01:10     При делении 2 на 4 результат - 0 #1
Стыдно, но не могу понять, почему компилятор выдает 0.

Есть код функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int high = 0;
    int mid = 0;
    int h;
    int m;
    int in;
    for (int i = 0; i<Quant; i++)
    {
        if (strcmp("High", pCol[i].education)==0)
            high++;
        else if (strcmp("Mid", pCol[i].education)==0)
            mid++;
    }
    h = (high/Quant)*100;
    m = (mid/Quant)*100;
    in = 100 - h - m;
Задача - посчитать структуру.

При high = 2, a Quant = 4, выдает h = 0. Хотя я от него ожидаю 50.
Что я сделал не так?)

Добавлено через 2 минуты
А, понял. Т.к. все числа int он 0.5 округляет до 0.

Решил так h = high*100/Quant;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2014, 01:10     При делении 2 на 4 результат - 0
Посмотрите здесь:

при делении на 7 дают остаток 1, 2, или 5 C++
C++ Калькулятор - исключение при делении на 0
написать программу в Dev-C++ для поиска трехзначных чисел, которые при делении на 47 дают в остатке 43, а при делении на 43 дают в остатке 47 C++
C++ При делении округляет
C++ Что возвращать при делении на ноль?
Округление при делении C++
C++ Найти все пятизначные числа, которые при делении на A дают в остатке B, а при делении на C дают в остатке D
C++ Как происходит переполнение при делении

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6420 / 3794 / 877
Регистрация: 30.01.2014
Сообщений: 6,584
20.03.2014, 01:22     При делении 2 на 4 результат - 0 #2
Цитата Сообщение от Chacka Посмотреть сообщение
А, понял. Т.к. все числа int он 0.5 округляет до 0.
Угу. Результат операции будет числом с плавающей точкой если один или оба аргумента - числа с плавающей точкой. Иначе результат выражения - целочисленный.
C++
1
h = high / float(Quant) * 100;
Yandex
Объявления
20.03.2014, 01:22     При делении 2 на 4 результат - 0
Ответ Создать тему
Опции темы

Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru