Moin,
ich fange gerade mit der C-Programmierung an, und versuche mich aktuell an einem Programm zur Bestimmung von Pi. Leider hat sich ein (Syntax-)Fehler eingeschlichen, den ich nicht ausfindig machen kann. Das ist das Programm:
Code:
#include <stdio.h> // Dies ist ein Programm das Pi bestimmt. Es werden Zufälligen Punkte in einem quadrat von 1x1 FE
#include <time.h> // erstellt. Gleichzeitig werden die Punkte näher als 1 zum Ursprung gemessen. Das Verhältnis
#include <stdlib.h> // zur Gesammtanzahl wird mit vier multipliziert,
#include <math.h> // da hier nur ein Viertelkreis betrachtet wird. Und
// Und man erhält Pi
#define rand() (a=a*1103515245+12345, a&0x2710)
#define srand(r) a=r
unsigned long int a=1;
int main(void)
{
int Zaehler, Anzahl, Zaehlerb; // Zähler zählt die Durchläufe, Anzahl gibt die Anzahl der durchläufe an,
float c, b; // Zahlerb zählt die Punkte näher als 1 zum Uhrsprung. a und b bezeichnen die
double s,k,d; // Koordinaten im Quadrat, s den Abstand zum Ursprung. x wird für den
int x=10000; // Zufallsgenerator benötigt
srand(time(NULL));
printf("Dies ist ein Programm zur Bestimmung von Pi\n");
printf("Geben Sie die Anzahl der Durchläufe an:");
scanf("%d",&Anzahl);
do {
srand(time(NULL));
c=rand();
c/=x;
b=rand();
b/=x; // Teil durch x für einen Wert zwischen 0 und 1.
Zaehler++;
d=c*c+b*b;
k=double sqrt(d);
if(k<=1){Zaehlerb++;}
}while(Zaehler<=Anzahl);
s=Zaehlerb/Anzahl;
s*=4;
Printf("\nBei der Betimmung ist für Pi folgender Wert herrausgekommen: %f",s);
return(0);
}
Das sind die Meldung, die mir der C-Compiler ausgibt:
/tmp/cc1CJaLB.o: In function `main':
Bestimmung_Pi2.c
.text+0x10b): undefined reference to `sqrt'
Bestimmung_Pi2.c
.text+0x16d): undefined reference to `Printf'
collect2: ld gab 1 als Ende-Status zurück
Ich hoffe ihr könnt mir weiterhelfen,
mfg Arthur
Lesezeichen