[C] sqrt - Funktion?

marcelcedric

Commodore
Registriert
Mai 2003
Beiträge
4.342
Hi,

Ich versuche gerad ein Programm in C zu schreiben, was mir es vereinfachert ein paar Aufgaben zu loesen. (Zum testen erstmal nur der Kegelstumpf)

Code:
 #include <stdio.h>
#include <math.h>

int main ()
{

  double k;
  float pi=3.141592654;
  double r1;
  double r2;
  double foo;
  
  printf("Bitte geben sie den Wert fuer k ein: ");
  scanf("%lf",&k);
  //printf("\nIhre eingegebene Zahl war: %d",k);
 printf("\nBitte geben sie den Wert fuer r1 ein: ");
 scanf("%lf",&r1);
 printf("\nBitte geben sie den Wert fuer r2 ein: ");
 scanf("%lf",&r2);

foo=sqrt(r1)+r1*r2+sqrt(r2);
printf("sqrt(%lf) = %lf\n",foo);
 
return 0;
}

gcc kegelstumpf.c -o kegelstumpf schrieb:
/tmp/cckBaSsL.o(.text+0x7c): In function `main':
: undefined reference to `sqrt'
/tmp/cckBaSsL.o(.text+0x92): In function `main':
: undefined reference to `sqrt'
collect2: ld returned 1 exit status

Irgendwer eine Idee?

mfg
 
Boron schrieb:
Beliebter Fehler :D!

Ergänze für den Linker -lm. Dann weiß er, dass er die Mathe-Bib auch linken muss.

Danke, jetzt baut ers. :) Muss nur noch ein paar Aenderung am Code vornehmen, da er jetzt nicht gerade richtig rechnet. *moralisches karma* :P

mfg
 
Hallo auch,

achja, wenn man *richtig* *genau* rechnen will empfiehlt sich GMP. Funktioniert auch mit C, mit den C++ wrapper Klassen isses aber richtig schön Idioten sicher :)
Hier mal marcelcedrics Programm mittels gmp:

http://boese-ban.de/~tim/misc/kegel.html

Hier ein kleines Beispiel für den Output:

Code:
$ ./kegel
1. Volumen
2. Koerperhoehe
3. Oberflacheninhalt
9. Programm beenden
1
Koerperhoehe: 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
Radius1: 300
Radius2: 20

Volumen: 1.0095e+92

Lässt sich natürlich mit beliebig großen Zahlen rumhantieren.

Gruß

Tim
 
Zurück
Oben