У меня вопрос от моего младшего, и я не могу это исправить. Ниже приведен код, который он использует в IDE Code :: Blocks, только что загруженный с официального сайта Code::Blocks.Функция pow не работает должным образом в Code :: Blocks IDE
Это консольный проект hello world, который он только немного изменил, используя файл заголовка math.h
и используя функцию pow()
.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
printf("Hello world! %d\n",pow(2,2));
return 0;
}
Выход этого кода должен быть Hello world! 4
справа? Но voila всегда Hello world! 0
, если только Я использую printf("Hello world! %f\n", pow(2,2));
, который синтаксически, да, совершенный и правильный. Но потом это совсем другая история.
Pow функция должна вернуть 4, double
, конечно. Так что происходит? printf()
работает неправильно, или есть проблема с pow()
.
возвращаемое значение 'double' так что вы должны привести его к' (Int) ' – Rizier123
Если вы используете GCC, добавьте' -Wall', и вам будет рассказано о несоответствии между форматом '% d' и значением' double'. –