ОБСУЖДЕНИЕ

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

4 ответов 4,5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Писал программу на си, компилятор выдаёт ошибки. Система 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
 
это уже ясно, а как исправить? Как правильно вычислить квадратный корень??
 
Ошибки:
Код:
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