Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

undefined symbol pierwiastek w c

Ostatnio zmodyfikowano 2016-04-03 00:01
Autor Wiadomość
paciug
Temat założony przez niniejszego użytkownika
undefined symbol pierwiastek w c
» 2016-03-30 03:28:22
int pierwiastek()
{
  int x,wynik;
  printf("Podaj x: ");
  scanf("%d",& x);
  wynik = sqrt(x);
  if(wynik*wynik==x)
    {
      printf("Liczba %d jest potega liczby %d\n",x,wynik);
    }
  else
  {
      printf("Ta liczba nie jest potega liczby calkowitej\n");
    }
}
int main()
{
  int x;
  pierwiastek();
  return 0;
}

tresc bledu: Undefined                       first referenced
 symbol                             in file
sqrt                                /var/tmp//ccInq7Ps.o
ld: fatal: symbol referencing errors. No output written to a.out
P-146761
darko202
» 2016-03-30 07:39:05
dołącz odpowiedni plik nagłówkowy np.
#include <math.h>       /* sqrt */
http://www.cplusplus.com​/reference/cmath/sqrt/
P-146763
mokrowski
» 2016-03-30 11:00:42
.. i dodaj przełącznik linkowania biblioteki matematycznej jeśli np. używasz jakiegoś gcc lub czegoś podobnego:
gcc -lm -o program program.c
P-146767
paciug
Temat założony przez niniejszego użytkownika
» 2016-04-02 17:34:13
nie pomoglo :/
P-146898
mokrowski
» 2016-04-03 00:01:19
C/C++
#include <stdio.h>
#include <math.h>

// XXX: Jak to jest C to powinieneś jawnie powiedzieć
// że funkcja nie przyjmuje argumentów podając void
int pierwiastek( void )
{
    int x, wynik;
    printf( "Podaj x: " );
    scanf( "%d", & x );
    wynik = sqrt( x );
    if( wynik * wynik == x )
    {
        printf( "Liczba %d jest potega liczby %d\n", x, wynik );
    }
    else
    {
        printf( "Ta liczba nie jest potega liczby calkowitej\n" );
    }
    // XXX: A może byś zwrócił int jak obiecujesz w nagłówku funkcji?
    // Albo obiecaj void i nic nie zwracaj albo wywoiązuj się z obietnic :-)
    return 0;
}

// XXX: To samo co wyżej. Także void.
int main( void )
{
    // XXX: A teraz to po co to x?
    //int x;
    pierwiastek();
    return 0;
}
Kompilacja:
gcc -Wall -Wextra -lm -o prog prog.c


Cytując klasyków: "U mnie działa" :-)
P-146919
« 1 »
  Strona 1 z 1