Zylindervolumen und Zylinderoberflächenberechnung in C
Hallo, ich habe die Aufgabe bekommen, ein Programm zu erstellen, welches die Oberfläche und das Volumen eines Zylinders aus dem Radius und der Höhe berechnet und die Ergebnisse auf dem Bildschirm (Konsole) ausgibt. Hierbei sollen die Variablen Radius und Höhe selbst eingegeben werden (mit Hilfe von scanf). Mein Text sieht im Moment wie folgt aus:
include <stdio.h>int main()
{ double O, V, Pi=3.14, h, r;
O=2*Pi*r*h+2*Pi*(r*r);
V=Pi*(r*r)*h;
printf ("Bitte hier den Radius eintragen: ");
scanf ("%lf",&r);
printf ("Bitte hier die Höhe eintragen: ");
scanf ("%lf",&h);
printf ("Oberfläche: %lf\n", O);
printf ("Volumen: %lf\n", V);
return 0; }
Mein Problem hierbei ist, dass es als Ergebnis für das Volumen und die Oberfläche ständig den Wert 0.0000 ausgibt.
Ich wäre unglaublich Dankbar wenn mir jemand meinen Fehler zeigen könnte! Bin schon total am verzweifeln -.-
Danke im voraus!
2 Antworten
Hallo!
Hehe, ja es ist klar dass hier immer 0 rauskommt. Du berechnest die Oberfläche und das Volumen BEVOR der Benutzer die Werte für Radius und Höhe eingegeben hat.
Du must zuerst Radius und Höhe eingeben lassen und vor den ersten printf fügst du die Berechnung von O und V ein.
Viel Spass noch :)
LG
Hallo nochmals!
Hab es jetzt selbst ausprobiert weil ich es nicht glauben konnte. Bei mir funktioniert es.
http://www.bilder-space.de/bilder/265976-1351088742.png
:(
Sorry, nicht vor dem ersten printf natürlich sondern nach dem letzten scanf
Hab das Problem gelöst! Lösung untenstehend:
include <stdio.h>int main() { float O, V; float Pi, h, r; Pi=3.14;
printf ("Bitte hier den Radius eintragen: ");
scanf ("%f",&r);
printf ("Bitte hier die Hoehe eintragen: ");
scanf ("%f",&h);
O=2*r*h*Pi+2*(r*r)*Pi;
V=(r*r)*h*Pi;
printf ("Oberflaeche: %10.2f\n",O);
printf ("Volumen: %10.2f\n",V);
return 0; }
Hi Danke für die schnelle Antwort ... ich hab den Text nur wie folgt abgeändert! Hat sich aber leider nichts gemacht ... 0.00 bleibt!
include <stdio.h>int main() { double O, V, Pi=3.14, h, r;
return 0; }