Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 3
1

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

20.03.2014, 01:10. Показов 2609. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Стыдно, но не могу понять, почему компилятор выдает 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;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2014, 01:10
Ответы с готовыми решениями:

Неверный результат при делении
допустим нужно разделить 1 на 0.1 выдает 9.99999999995 примерно . но не 10 . double a = 0; ...

Логическая ошибка: при делении результат всегда единица
Ошибка заключается в том что в переменную L должен идти остаток деления L на 10, но почему то...

Компилятор при делении больших чисел выдает не верный результат
Здравствуйте. Я только осваиваю азы программирования на С++. Компилятор используется g++ Нужно...

Найти четырехзначные числа, которые при делении на 133 дают в остатке 125, а при делении на 134 дают в остатке 111
Составить программу поиска четырехзначных чисел в С++, которые при делении на 133 дают в остатке...

1
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
20.03.2014, 01:22 2
Цитата Сообщение от Chacka Посмотреть сообщение
А, понял. Т.к. все числа int он 0.5 округляет до 0.
Угу. Результат операции будет числом с плавающей точкой если один или оба аргумента - числа с плавающей точкой. Иначе результат выражения - целочисленный.
C++
1
h = high / float(Quant) * 100;
0
20.03.2014, 01:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2014, 01:22
Помогаю со студенческими работами здесь

Найти все пятизначные числа, которые при делении на A дают в остатке B, а при делении на C дают в остатке D
C++ Напишите программу, которая вводит четыре натуральных числа (a, b, c и d) и находит все...

Найти числа, которые при делении на 47 дают в остатке 43, а при делении на 43 дают в остатке 47
Мне нужно написать программу в Dev-C++ для поиска трехзначных чисел, которые при делении на 47 дают...

При делении округляет
Объясните мне, пожалуйста, такой казус: double e=0,k=2; e=352*k+1; e/=25; cout&lt;&lt;e&lt;&lt;endl; ...

Округление при делении
Всем привет. Как математически округлить такое? int a = 7; int b = 4; double c = a/b; Суть...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru