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

Тема в разделе "Общие вопросы по С и С++", создана пользователем -, 27 авг 2010.

  1. Гость

    Писал программу на си, компилятор выдаёт ошибки. Система 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]
    Ошибки:
    Код (Text):
    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
     
  2. etc

    etc Гость

    тут ->
     
  3. Гость

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

    User1C Гость

    for (d=2; ((d<=sqrt(x))||(!(s)); d++)

    Можно и так:
    pow(x,1/2)
     
  5. Anthony

    Anthony Гость

    ИМХО, это ошибка линковки. Нужно добавить линк к библиотеке, где содержиться sqrt.
    Например, так: gcc main.c -Wl,-lm
     
Загрузка...

Поделиться этой страницей