использовать функцию math.h в Linux? sqrt () [closed]

почему я не могу запустить программу с кодом sqrt (a)

:

    #include <stdio.h>                                                                               
  1 #include <math.h>
  2 int main ()
  3 {         
  4     int a, b, c;
  5     scanf("%d %d ", &a, &b);
  6     c = sqrt(a) + b;
  7     printf("%d", c);
  8     return 0;
  9 }

ошибка:

/usr/bin/ld: /tmp/ccfUQsrW.o: in function `main':
test.c:(.text+0x42): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status

если я компилирую программу

:!gcc test.c -o ./test -lm

, то программа ничего не показывает

0
задан 28 September 2019 в 00:31

3 ответа

math.h находится в libc6-dev пакет, удостоверьтесь, что он установлен.

walt@bat:~(0)$ dpkg -S /usr/include/math.h 
libc6-dev:amd64: /usr/include/math.h
0
ответ дан 23 October 2019 в 10:12

Не называйте свою программу "тестом", так как уже существует "тестовая" команда Linux, и это будет, вероятно, вызвано в предпочтении к Вашей скомпилированной программе. Если запущение "теста =" приводит к жалобе на унарный оператор, Вы запускаете встроенный "тест". Переименуйте свой "тест" как "sqrt" и попытайтесь выполнить "./sqrt".

1
ответ дан 23 October 2019 в 10:12

Программа ничего не отображает, потому что Вы не сбрасываете вывод. Для этого замените эту строку:

printf("%d", c);

с

printf("%d\n", c);
0
ответ дан 23 October 2019 в 10:12

Другие вопросы по тегам:

Похожие вопросы: