Zuerst einmal den Fehler: -1.IND00 . Ich habe ein Programm geschrieben, das PI bestimmen soll. Aber wenn das Ergebnis ausgegben werden soll kommt nur der oben genannte Wert. Beim googeln habe ich dann als Lösung gesehen, dass ich eine falsche Klammer gesetzt haben könnte, welche ich auch gefunden habe, aber das Ergebnis änderte sich nicht. Hier ist der Programmcode(Ich habe versucht es übersichtlich darzustellen):
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double a,s,A_umschrieben,A_eingeschrieben;
const PI_rech = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609;
a_bestimmen(unsigned long int zahl)
{
a = 2*sin((360/zahl)*(PI_rech/180));
}
s_bestimmen(unsigned long int zahl)
{
s = 2*(1/tan((360/zahl)*(PI_rech/180)));
}
a_eingeschrieben(unsigned long int zahl, double seite)
{
A_eingeschrieben = zahl*(seite/2);
}
a_umschrieben(unsigned long int zahl, double seite)
{
A_umschrieben = zahl*((seite*seite) / 4*tan((seite/2)*(PI_rech/180)));
}
int main()
{
double PI;
unsigned long int n;
printf("Geben Sie die Zahl der Ecken ein:\n");
scanf("%li",n);
a_bestimmen(n);
s_bestimmen(n);
a_eingeschrieben(n,a);
a_umschrieben(n,s);
PI = A_umschrieben/A_eingeschrieben;
printf("angenaehert bertraegt PI:\n");
printf("%lf",PI);
return PI;
}