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

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

Войти
Регистрация
Восстановить пароль
 
wolfgang073
9 / 9 / 0
Регистрация: 03.10.2012
Сообщений: 35
#1

поясните по оператору "%" - C++

08.10.2012, 10:54. Просмотров 343. Ответов 7
Метки нет (Все метки)

Привет товарищи. По оператору "%" я правильно понимаю???

C++
1
2
3
4
5
6
7
8
9
 int x, y;
    x = 6;
    y = 3;
    z = 7;
    cout << x / y;
    cout << "\n\n";
    cout << x % y;
    cout << z % y;
    cout << "\n\n";
Выводит:

При делении 6 / 3 =2
6 % 3 =0
7 % 3 =1

Вот эти "0" и "1" указывают на то, что есть остаток или нет (по подобию false, true)?

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2012, 10:54     поясните по оператору "%"
Посмотрите здесь:

ошибки "Complex" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору - C++
заголовочный файл #include &lt;iostream&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace...

поясните что обозначает знак "?" в этой строке - C++
for(x=x_srt;(dx&gt;0) ? x&lt;=x_end : x&gt;=x_end ;x+=dx) Добавлено через 1 минуту и заодно знак двоеточие))

Поясните принцип работы паттерна "абстрактная фабрика" - C++
это паттерн &quot;абстрактная фабрика &quot; .Просьба пояснить каждую строчку #include &lt;iostream&gt; class ICar // AbstractProductA { ...

Операторы эквивалентные оператору присваивания\условному оператору? - C++
Здравствуйте уважаемые форумчане) Есть два задания, в которых я не могу понять даже смысла, будьте добры, может кто знает в чем соль?) ...

Подсчитать, колько раз в произвольном тексте встречается символ "*" и "+" - C++
Дан любой текст...Сколько раз в нём встречается символ &quot;*&quot; и &quot;+&quot;? нужно использовать цикл с счетчиком

Определить "Y" с точностью до члена ряда меньшего "e"(допустим: 0.001) - C++
Требуется определить &quot;Y&quot; с точностью до члена ряда меньшего &quot;e&quot;(допустим: 0.001) Y=x/3-x^3/15+x^5/75-x^7/375...+-x^(2n+1) / 3*5^n ; ...

Error C2361: пропуск инициализации "Height" из-за метки "default" - C++
Добрый день! Решила чуть изменить типичный код из учебника - и тут же появилась ошибка компилятора. Код вот такой: #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
08.10.2012, 11:04     поясните по оператору "%" #2
Остаток от деления на цело. Есть дробное деление и деление на цело. Например, 5.0/2.0 = 2.5, но 5/2=2. При делении на цело частное целое и равно целой части нормального частного. Но обратная операция даёт 2*2=4. 5-4=1, это остаток, значит 5%2=1. 10%3 тоже равно 1, а 11%3=2, потому что 11.0/3.0=3.333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333...333333333333333333333333333333333333333333333333, 11/3=3, 3*3=9, 11-9=2. Остаток всегда строго меньше делителя, но может быть и нулевым, если делимое кратно делителю.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.10.2012, 15:55     поясните по оператору "%" #3
Цитата Сообщение от wolfgang073 Посмотреть сообщение
6 % 3 =0
6 делим на 3, остаток 0
7 делим на 2 остаток 1
это не true и не false, не путать, это именно ОСТАТОК ОТ ДЕЛЕНИЯ!
wolfgang073
9 / 9 / 0
Регистрация: 03.10.2012
Сообщений: 35
08.10.2012, 16:22  [ТС]     поясните по оператору "%" #4
C++
1
2
3
4
5
int t;
    cin >> t; //введите время в сек.
    cout << (t/3600) % 24 <<".";
    cout << (t/60)% 60  << ".";
    cout << t % 60 << endl;

Зачем здесь делят по модулю?
wtf?
19 / 19 / 0
Регистрация: 03.10.2010
Сообщений: 48
08.10.2012, 16:37     поясните по оператору "%" #5
C++
1
2
3
4
    
    cout << (t/3600) % 24 <<".";
    cout << (t/60)% 60  << ".";
    cout << t % 60 << endl;
1-ая строка это ограничение в 24 часа, если введёте количество секунд больше 24 часов, на екране выведется 0 часов
2-ая строка это количество минут, если количество минут кратное 60 значит оно уже учтено и выведено в виде часов
3-ая строка это количество секунд если количество секунд кратное 60 значит оно уже учтено и выведено в виде минут
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.10.2012, 16:37     поясните по оператору "%" #6
Цитата Сообщение от wolfgang073 Посмотреть сообщение
C++
1
2
3
4
5
int t;
    cin >> t; //введите время в сек.
    cout << (t/3600) % 24 <<".";
    cout << (t/60)% 60  << ".";
    cout << t % 60 << endl;

Зачем здесь делят по модулю?
где вы видите модуль? скобки ставят, чтобы указать компилятору приоритет операций
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
08.10.2012, 16:42     поясните по оператору "%" #7
Цитата Сообщение от wtf? Посмотреть сообщение
-ая строка это ограничение в 24 часа, если введёте количество секунд больше 24 часов, на екране выведется 0 часов
Нет. 0 выведется только если количество секунд >=24-х часов, но <25-ти. Или >=48-ми, но <50-ти. Ну и так далее. А если ввести 47 часов, то выведется 23.

Добавлено через 2 минуты
Цитата Сообщение от panicwassano Посмотреть сообщение
где вы видите модуль? скобки ставят, чтобы указать компилятору приоритет операций
Не путай вычисление по модулю и модуль числа. Модуль числа - это функция, игнорирующая знак, а деление на 3600 по модулю 24 - это остаток от деления на цело на 24 частного от деления на 3600, то есть как раз (t/3600)%24.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2012, 17:27     поясните по оператору "%"
Еще ссылки по теме:

Вычисление суммы позиций на которых в слове Х стоят буквы "в" и "п" - C++
Вот тут дали задание и не знаю как решить....я думаю есть добрые люди???=))) Напишите программу вычисления суммы позиций на которых в...

Сколько существует способов расставить между цифр знаки "+" и "-" - C++
Вот сама задача - {удалено} Не могу сделать норм перебор

Найти угол одной точки "A" в соотношении к точке "B" в градусах - C++
Этот метод возвращает значение в радианах, как получить градусы? #define DEG 57.2957795f atan2f(p1.y - p2.y, p1.x - p2.x) * DEG;

Результаты сдачи экзамена группой из N сту-дентов находятся в массиве REZ. Подсчитать количество студентов, сдавших экзамен на "хорошо" и "отлично" - C++
Задача 68. Результаты сдачи экзамена группой из N сту-дентов находятся в массиве REZ. Подсчитать количество студентов, сдавших экзамен на...

Каждую последовательность символов"АBC" заменить на"ALPHABET" - C++
ввести строку.Создать другую строку из символов введенной, где каждую последовательность символов&quot;АBC&quot; заменить на&quot;ALPHABET&quot; пример...


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

Или воспользуйтесь поиском по форуму:
wolfgang073
9 / 9 / 0
Регистрация: 03.10.2012
Сообщений: 35
08.10.2012, 17:27  [ТС]     поясните по оператору "%" #8
Цитата Сообщение от panicwassano Посмотреть сообщение
где вы видите модуль? скобки ставят, чтобы указать компилятору приоритет операций
В учебнике. Глава арифметические операторы. % - оператор деление по модулю.
Yandex
Объявления
08.10.2012, 17:27     поясните по оператору "%"
Ответ Создать тему
Опции темы

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