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

Не могу понять, что делает "%=" - C++

Восстановить пароль Регистрация
 
wizzzi
0 / 0 / 0
Регистрация: 21.06.2012
Сообщений: 12
07.07.2012, 11:35     Не могу понять, что делает "%=" #1
Не могу понять, что делает "%=". Вот написал не большую програмку, но так что то и не втыкаю.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "stdafx.h"
#include <iostream>
using namespace std;
int main() 
{
   int a = 30, b = 10;
 
   b %= a;      
 
   cout  << "b %= a" << b << endl;
         
getchar();
}
a = -30, b = 10; Выдает 10;
a = -5, b = 10; Выдает 0;
a = -4, b = 10; Выдает 2;
a = -1, b = 10; Выдает 1;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
07.07.2012, 11:38     Не могу понять, что делает "%=" #2
wizzzi,
C++
1
a%=b
эквивалентно
C++
1
a=a%b
yleart
 Аватар для yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
07.07.2012, 11:39     Не могу понять, что делает "%=" #3
Остаток от деления b на a будет находится в b
Т.е. остаток от деления b = 10 на a = 30 будет 10, и ты сразу записываешь 10 в b
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2012, 12:04     Не могу понять, что делает "%=" #4
Цитата Сообщение от wizzzi Посмотреть сообщение
Не могу понять, что делает "%=".
Это то же самое, что:
C++
1
 b = b % a;
Остаток от b/a присваивается b.
-=ЮрА=-
Заблокирован
Автор FAQ
07.07.2012, 12:10     Не могу понять, что делает "%=" #5
wizzzi, всё очень просто % - возвращает остаток от целочисленного деления
К примеру 5 % 2 = 1 т.е. 5 - 2*2 = 1 Аналогично 11%10 = 1 (11 - 1*10 = 1)
Теперь наверное ты недоумеваешь, а тут
Цитата Сообщение от wizzzi Посмотреть сообщение
b %= a;
что на что делиться если структура операнда такая
Число %Число а у нас Число % присваинвание Число.
Что ж тут нет ничего сложного, просто использована инверсная запись, т.е.
и строка b %= a равносильна b = b % a
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2012, 12:18     Не могу понять, что делает "%=" #6
Единственный момент, который здесь может быть не понятен - это когда a > b. В этом случае b%a равен b.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
07.07.2012, 13:00     Не могу понять, что делает "%=" #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Единственный момент, который здесь может быть не понятен - это когда a > b. В этом случае b%a равен b.
а чего тут непонять? этож обычный остаток
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2012, 17:33     Не могу понять, что делает "%="
Еще ссылки по теме:

Не могу понять смысл "связные списки" C++
Что делает цикл "while(cin.getline(buf,l_buf))" ? C++
Не могу понять ошибку "C2043: недопустимый break". Задача: найти подстроку в строке C++

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

Или воспользуйтесь поиском по форуму:
wizzzi
0 / 0 / 0
Регистрация: 21.06.2012
Сообщений: 12
07.07.2012, 17:33  [ТС]     Не могу понять, что делает "%=" #8
Спасибо большое. Можно закрывать.
Yandex
Объявления
07.07.2012, 17:33     Не могу понять, что делает "%="
Ответ Создать тему
Опции темы

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