Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 07.05.2019
Сообщений: 5
1

Модульная арифметика

10.06.2019, 11:13. Показов 2099. Ответов 4
Метки нет (Все метки)

Привет!!! Почему получаем разный результат?
C++
1
2
3
char letters[] = { 'а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я' }; //32 буквы. без ё         
 cout << -3 % size(letters) << endl;        
 cout << -3 % 32 << endl;
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2019, 11:13
Ответы с готовыми решениями:

Модульная структура c++
Всем доброго времени суток. В с++ я пока еще медный чайник, посему мне требуется ваша помощь=). ...

Много-модульная программа на С++
Задание: Создать бинарный файл - Список работников: табельной номер, ФИО, дата рождения,...

C++ модульная структура. Как разделить код на разные самостоятельные части и подключить их
1. У меня задача стоит в том чтоб разбить код на отдельные куски и подключить с помощью файла...

Арифметика!
Дано натуральное число n. Вычислить: (1+1/1*1)+(1+1/2*2)+(1+1/3*3)+...+(1+1/n*n) Скажу всем...

4
Модератор
Эксперт С++
10531 / 8753 / 5293
Регистрация: 18.12.2011
Сообщений: 23,414
10.06.2019, 12:39 2
Надо приводить к int, т.к. size возвращает unsigned int, который более приоритетный, чем int.

C++
1
2
    cout << -3 % (int)size(letters) << endl;
    cout << -3 % 32 << endl;
1
0 / 0 / 0
Регистрация: 07.05.2019
Сообщений: 5
10.06.2019, 12:58  [ТС] 3
Я выполняю деление с остатком отрицательного числа,ответ должен быть больше нуля.
Может функция size() работает с беззнаковым типом данных?
Как раз при такой операции size(letters) и получается правильный ответ.
0
6645 / 4473 / 1816
Регистрация: 07.05.2019
Сообщений: 13,589
Записей в блоге: 1
10.06.2019, 13:05 4
Лучший ответ Сообщение было отмечено Silver_cpp как решение

Решение

Цитата Сообщение от Silver_cpp Посмотреть сообщение
Привет!!! Почему получаем разный результат?
std::size возвращает size_t, а 32 - это int
Сделай cout << -3 % size_t(32) << endl;
1
0 / 0 / 0
Регистрация: 07.05.2019
Сообщений: 5
10.06.2019, 13:42  [ТС] 5
Да,получилось. Только надо сделать так size_t(-3) % 32
Спасибо!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2019, 13:42

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Арифметика
Даны x,y,z. Вычислить a,b если &lt;a target=&quot;_blank&quot;...

Арифметика в C
Дано натуральное число n. Проверить содержит ли оно три одинаковые цифры. Например 12322. Содержит....

Арифметика класса
Есть вот такое задание: Разработать и реализовать в виде методов операции над объектами класса:...

Занимательная арифметика
double g, f, x; g = 0.01; f = 47.11; x = f - g*4711; Компилятор C++ Builder 6 выдает ответ...


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

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

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