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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
eek
4 / 4 / 0
Регистрация: 20.05.2012
Сообщений: 174
#1

Остаток от деления (%) - C++

24.11.2013, 22:43. Просмотров 2135. Ответов 10
Метки нет (Все метки)

Не могу понять как можно изменить структуру кода, чтобы программа считала правильно на отрицательные значения цифр. Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main() {
    setlocale(LC_ALL, "Russian");
    int x = -78, y = 33;
    std :: printf("Результаты деления: %d\n", x/y);
    std :: printf("Остаток: %d\n", x%y);
    system("pause > nul");
    return 0;
}
На положительные числа программа делает остаток правильный, а вот на отрицательный — нет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2013, 22:43     Остаток от деления (%)
Посмотрите здесь:

остаток от деления - C++
обычно использовал &quot;%&quot; для отделения остатка от деления двух чисел только для того чтобы узнать целочисленное деление или нет. Теперь...

Остаток от деления - C++
Выручайте, а то голова вообще не варит.... Мне нужно из дисятиченого числа вытащить остаток. то есть из 5.13 это 13, из 8.23 это...

остаток от деления - C++
Народ помогите пожалуйста)) в паскале есть такие функции div и mod div - целая часть от деления (модуль) mod -остаток от деления ...

Остаток от деления - C++
Поправьте меня в типах переменных: #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { double...

Остаток от деления - C++
Дано 50-значное число в char массиве. (char m=&quot;54215611...&quot;; Как считать остаток от деления этого числа на 7 ? Заранее...

остаток от деления - C++
Начало прогр на табуляцию функции. Не могу найти остаток от деления в сточке if ((x1-x2)%d==0) на d оно почему-то не делит ...

Остаток от целочисленного деления - C++
Всем привет) Только начинаю программировать на С++, поэтому иногда сталкиваюсь с ошибками в коде, которые не могу найти Вот и в этой...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
24.11.2013, 22:54     Остаток от деления (%) #2
И какой же там выводится остаток, что ты считаешь его неправильным(правильный ответ -12 если что)
eek
4 / 4 / 0
Регистрация: 20.05.2012
Сообщений: 174
24.11.2013, 23:04  [ТС]     Остаток от деления (%) #3
Почему же? При делении с остатком отрицательного числа x = -78 на y = 33 получаем -3 и остаток 21.
Flaker
2 / 2 / 0
Регистрация: 07.07.2012
Сообщений: 90
24.11.2013, 23:18     Остаток от деления (%) #4
Цитата Сообщение от eek Посмотреть сообщение
Почему же? При делении с остатком отрицательного числа x = -78 на y = 33 получаем -3 и остаток 21.
-78 / 33 = -2.36(36)

33 * -2 = -66

abc(-78) - abc(-66) = 12 => Остаток от деления это 12. (Остаток от деления не может быть отрицательным числом)

Добавлено через 8 минут
test
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
24.11.2013, 23:23     Остаток от деления (%) #5
Flaker, остаток от деления и не может быть отрицательным! Я же написал, что ответ - 12 (положительное число)
Flaker
2 / 2 / 0
Регистрация: 07.07.2012
Сообщений: 90
24.11.2013, 23:26     Остаток от деления (%) #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Flaker, остаток от деления и не может быть отрицательным! Я же написал, что ответ - 12 (положительное число)
Я ведь не вас комментировал. Но у вас, кстати, стоит именно минус, а не тире, и даже без пробела.

Единственно, если делимое отрицательное, то, в итоге, остаток тоже становится отрицательным.

P.S. Что бы поставить тире, достаточно нажать ALT и на numpad ввести 0151.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
24.11.2013, 23:31     Остаток от деления (%) #7
Ну, вообще говоря, автор прав в одном: остаток от деления не всегда верно работае с отрицательными числами!
http://stackoverflow.com/questions/7...egative-values
eek
4 / 4 / 0
Регистрация: 20.05.2012
Сообщений: 174
24.11.2013, 23:41  [ТС]     Остаток от деления (%) #8
Проверка: -78 = 33*(-3) + 21. Это не десятичная дробь, а остаток. Это арифметика.
Flaker
2 / 2 / 0
Регистрация: 07.07.2012
Сообщений: 90
24.11.2013, 23:51     Остаток от деления (%) #9
Округление в меньшую строну делается... Поэтому не 3 а 2.
eek
4 / 4 / 0
Регистрация: 20.05.2012
Сообщений: 174
24.11.2013, 23:54  [ТС]     Остаток от деления (%) #10
С остатком округления нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2013, 00:07     Остаток от деления (%)
Еще ссылки по теме:

Найти остаток от деления - C++
Здравствуйте, помогите с заданием. Спасибо

Остаток от целочисленного деления - C++
Вывести на экран числа от 1000 до 9999 такие, что среди цифр нет цифр 5 Не могу додуматься до остальных условий, отбрасывающих например...

Найти остаток от деления - C++
Программка не работает #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int uio(int x) ...

Целый остаток от деления - C++
Здравствуйте, мне нужно найти целую часть частного от деления (celoe()) и целый остаток от деления (ostatok()). например 11/3=3.6666......

Найти остаток от деления - C++
Заданы два числа: N и K. Необходимо найти остаток от деления N на K. Входные данные Входной файл INPUT.TXT содержит два целых числа:...


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

Или воспользуйтесь поиском по форуму:
Flaker
2 / 2 / 0
Регистрация: 07.07.2012
Сообщений: 90
25.11.2013, 00:07     Остаток от деления (%) #11
ostatok = num1 - (num2 * floor(num1 / num2))
Yandex
Объявления
25.11.2013, 00:07     Остаток от деления (%)
Ответ Создать тему
Опции темы

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