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

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

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

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

24.11.2013, 22:43. Просмотров 2275. Ответов 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;
}
На положительные числа программа делает остаток правильный, а вот на отрицательный — нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2013, 22:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Остаток от деления (%) (C++):

Найти частное и остаток от деления нацело без операции деления - C++
1)Дано целое число A (&gt; 0) и целое число B (&gt; 0). Найти долю Q и остаток R от деления нацело числа A на B (без использования операции...

Найти частное от деления нацело N на K, а также остаток от этого деления - C++
While3. Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а...

Для двух целых чисел найти остаток и частное от целочисленного деления, частное от вещественного деления - C++
Уважаемые форумчане помогите пожалуйста с двумя программами. Это вопрос жизни и отчисления, я очень плохо понимаю программирование. В...

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

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

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

10
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
24.11.2013, 22:54 #2
И какой же там выводится остаток, что ты считаешь его неправильным(правильный ответ -12 если что)
0
eek
4 / 4 / 0
Регистрация: 20.05.2012
Сообщений: 174
24.11.2013, 23:04  [ТС] #3
Почему же? При делении с остатком отрицательного числа x = -78 на y = 33 получаем -3 и остаток 21.
0
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
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
24.11.2013, 23:23 #5
Flaker, остаток от деления и не может быть отрицательным! Я же написал, что ответ - 12 (положительное число)
0
Flaker
2 / 2 / 0
Регистрация: 07.07.2012
Сообщений: 90
24.11.2013, 23:26 #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Flaker, остаток от деления и не может быть отрицательным! Я же написал, что ответ - 12 (положительное число)
Я ведь не вас комментировал. Но у вас, кстати, стоит именно минус, а не тире, и даже без пробела.

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

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

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

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

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

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


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

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

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