pow()
возвращает тип double
. Вам нужно использовать спецификатор формата %f
для печати double
.
Использование несоответствующего спецификатора формата для указанного типа аргумента вызывает неопределенное поведение . Проверьте главу §7.21.6.1 стандарта C N1570 (C11
). (Да, это не имеет ничего общего с C89
, IMHO)