• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Подскажите где ошибка

  • Автор темы Guest
  • Дата начала
G

Guest

Писал программу на си, компилятор выдаёт ошибки. Система Linux Ubuntu, компилятор gcc. Программа для вычисления простых чисел.
Программа:
<!--shcode--><pre><code class='c'>#include <stdio.h>
#include <math.h>
#define true 1
#define false 0
int prv(int min, int max)
{
int x,s,t;
float d;
s=false;
if (max>3){
for (x=min; x<=max; x++)
{
for (d=2; (d<=sqrt(x))||(!(s)); d++)
{
if (s)
s=false;
t=d;
if (x%t==0)
s=true;
}
if (s)
printf(" %d", x);
}
return 0;
}
else
return 1;
}

int main()
{
prv(1,100);
}[/CODE]
Ошибки:
Код:
maksim@maksim-desktop:~/Программы/Си/Простые числа$ gcc main.c
/tmp/ccorImLC.o: In function `prv':
main.c:(.text+0x94): undefined reference to `sqrt'
collect2: ld returned 1 exit status
 
G

Guest

это уже ясно, а как исправить? Как правильно вычислить квадратный корень??
 
A

Anthony

Ошибки:
Код:
maksim@maksim-desktop:~/Программы/Си/Простые числа$ gcc main.c
/tmp/ccorImLC.o: In function `prv':
main.c:(.text+0x94): undefined reference to `sqrt'
collect2: ld returned 1 exit status
ИМХО, это ошибка линковки. Нужно добавить линк к библиотеке, где содержиться sqrt.
Например, так: gcc main.c -Wl,-lm
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!