pow () не определен

#include  #include  void main() { int i, diff, sum = 0, num1 = 6, num2 = 2; for(i = 0; i <= 4; i++) { diff = num1 - num2; sum += pow(diff, i); } printf("%d", sum); } 

Всякий раз, когда я пытаюсь выполнить эту программу, появляется сообщение об ошибке:

В функции main :
неопределенная ссылка на pow .

Что мне здесь не хватает?

Это отказ компоновщика. Вам нужно связать с математической библиотекой, указать -lm в конце вашей команды компилятора. От человека :

Ссылка на -lm.

Математическая библиотека не является частью libc. Вам нужно связать его:

 gcc file.c -lm -o file 

Функция pow() определена в математической библиотеке. Ваш компилятор по умолчанию не связывает вашу программу с этой библиотекой, в результате чего компоновщик не может решить вызов pow() .

Чтобы исправить это, вам нужно добавить -lm в конце вашей строки компиляции / ссылки, которая связывает математическую библиотеку с вашей программой.

Я просто запускал ту же программу на своем Turbo C, и я получил результат как 341. Проверьте, находятся ли ваши файлы заголовков в папке / include вашей папки Turbo C. Убедитесь, что он содержит файл Math.h.