IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> pow(), C++
sheka
сообщение 7.10.2011 22:44
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
sheka
сообщение 8.10.2011 22:05
Сообщение #2


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Хм, я как бы понимаю, что вначале значение пропустило, а поэтому потом что-то дорисовало. Но я думал что в этом виноват pow, и никак не ++.
Компилятор GNU GCC (CodeBlocks 10.05) ничего не выдает.
Объясните, пожалуйста, что делает ++ ужасного.

Сообщение отредактировано: sheka - 8.10.2011 22:05
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 9.10.2011 6:42
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(sheka @ 8.10.2011 23:05) *
Но я думал что в этом виноват pow, и никак не ++.
Я извиняюсь, что встреваю. Просто "понравился" образ мысли, не смог удержаться )).
Шека, тут виноват не ++, и не Pow(), виноват ты сам. Во всех случаях прежде всего надо подозревать себя самого. Всякий раз, когда тебе хочется написать что-то вроде "pow() некорректно работает" - вспомни, что миллионы и миллионы программистов работают и не жалуются.. ))

Я согласен, ++ - это жутко хитрая штука. Я помню случай, когда я искал ошибку дня два в довольно несложном коде.. и еще несколько случаев помельче - он же не только в C/C++, он мне портил кровь и в PHP, и в Java.. Но я все равно его очень люблю и запрещать не стал бы )).

P.S.
Я думал, что на этом форуме, благодаря стараниям volvo/IUnknown (и не только), никто не будет вот так сразу валить на компилятор..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 14.08.2025 10:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"