![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
sheka |
![]()
Сообщение
#1
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
pow() некорректно работает если используется инкремент или декремент в его параметрах.
Задание: Совершая обход так: 1 3 4 10 2 5 9 11 6 8 12 15 7 13 14 16 заполнить матрицу а такими значениями: b11b12...bnn Kod (Показать/Скрыть)
В таком исполнении pow(b[k++ / N], k % N + 1); работает так как надо (еще недавно и так не работал, но теперь почему-то работает): результат (Показать/Скрыть)
а в таком pow(b[k / N], ++k % N + 1); - нет: результат (Показать/Скрыть)
Сообщение отредактировано: sheka - 8.10.2011 0:02 |
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ты на самом деле думаешь, что оба эти фрагмента делают одно и то же? Вынужден тебя разочаровать, это не так. Вот тебе простейший тест, доказывающий это:
1) добавляешь небольшую функцию, по имени pow, которая не только вычисляет значение xy, но еще и печатает, для каких аргументов она сработала: int pow(int x, int y) , больше в коде ничего менять не надо, тебе и так будет понятно что произойдет дальше. Итак. Запускаем с pow(b[k++ / N], k % N + 1) Результат (Показать/Скрыть)
А теперь - запускаем с pow(b[k / N], ++k % N + 1) Результат (Показать/Скрыть)
И что, ты по-прежнему считаешь, что глючит pow? Может, не надо извращаться при вычислении параметров и добиваться UB (неопределенного поведения), чего ты как раз и добился? Поведение не определено, в зависимости от компилятора, фазы Луны и погоды на Сатурне будут выдаваться разные результаты. P.S. Кстати, компилятор же предупреждает тебя, что в коде не все в порядке: In function 'int main()': Неужели это не наводит на размышления? Или опять не обращаем внимания на предупреждения? Сообщение отредактировано: IUnknown - 8.10.2011 1:31 |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 15:49 |