Problem bei Kreisflächenberechnung
-
Nun, dein Programm macht in der Schleife folgendes:
setzte r auf 20, setzte i auf fläche eines kreises mit radius 20
prüfe ob r < 41
gebe alles aus
setzte i auf fläche eines kreises mit radius 20
erhöhe r
prüfe ob r < 41
gebe alles aus r ist 21, aber i hat den wert von radius 20!
setzte i auf fläche eines kreises mit radius 21
...
Du siehst das Problem?
-
Ja, jetzt wo du es sagst:
Vielen Dank.
Aber wie löse ich das Problem? Wenn ich i nicht im Schleifenkopf erwähne, sondern nur im Anweisungsblock, dann meldet der Compiler, daß i nicht initialisiert sei.
lg
-
student 08/15 schrieb:
Aber wie löse ich das Problem? Wenn ich i nicht im Schleifenkopf erwähne, sondern nur im Anweisungsblock, dann meldet der Compiler, daß i nicht initialisiert sei.
Dann berechnet i doch vor der Ausgabe.
-
Stimmt, du hast recht...
ich muß im anweisungsblock nur die Formel und den print-Befehl tauschen...
Ich habe es gerade ausprobiert. So komme ich auf die richtigen Ergebnisse...
Vielenvielen Dank...
lg student 08/15
-
student 08/15 schrieb:
Stimmt, du hast recht...
ich muß im anweisungsblock nur die Formel und den print-Befehl tauschen...
Ich habe es gerade ausprobiert. So komme ich auf die richtigen Ergebnisse...
Vielenvielen Dank...
lg student 08/15
In dem Programm ist einiges doppelt und/oder an der falschen Stelle.
const double pi=3.1425; int main(void) { int r; // r steht für Radius double i; printf("Kreisumfänge:\n\n"); for(r=20; r<41; r++) { i=pi*r*r; printf("%lf*%i*%i=%lf\n", pi, r, r, i ); } }
Wobei man sich das l in %lf auch sparen koennte...
Ausserdem koennte man M_PI aus math.h einbinden und sich die Deklaration von pi sparen.
-
Übrigens ist PI nicht 3,1425 sondern 3,1416 (gerundet) siehe hier https://de.wikipedia.org/wiki/Kreiszahl
-
Videonauth schrieb:
Übrigens ist PI nicht 3,1425 sondern 3,1416 (gerundet) siehe hier https://de.wikipedia.org/wiki/Kreiszahl
Doch! Pi hat den Wert 3,1425, wenn man die Zahl auf vier Kommastellen genau berechnet. Runden ist hier unüblich und macht auch keinen Sinn. Abschneiden zu 3,1425 ist korrekt.
Es ist in diesem Fall eben nicht wie z. B. beim Geld, wo runden Sinn macht, weil es ja keine halben Cents gibt...
-
Besserwisser schrieb:
Doch! Pi hat den Wert 3,1425, wenn man die Zahl auf vier Kommastellen genau berechnet. Runden ist hier unüblich und macht auch keinen Sinn. Abschneiden zu 3,1425 ist korrekt.
Es ist in diesem Fall eben nicht wie z. B. beim Geld, wo runden Sinn macht, weil es ja keine halben Cents gibt...Jede Aussage in diesem Zitat ist kompletter Unsinn.
-
Eigentlich sollten solche Konstanten garnicht im Code stehen.
Dafür gibts ja schliesslich die entsprechenden include-Dateien.
Das hatte ich aber "damals" auch schon angemerkt.
-
M_PI ist aber nicht im Standard enthalten.