Volumen einer Kugel berechnen mit weiterer Funktion (kompletter Anfänger)
-
Hallo,
Ich bin kompletter Neuling was programmieren angeht und somit auch sehr unerfahren mit der C- Programmierung. Für die Schule sollen wir nun folgende Aufgabe machen:
"Implementieren Sie die Funktion double getVolumeOfSphere(double dr), welche das Volumen einerKugel berechnet."Mein Code dazu sieht folgendermaßen aus:
#include <stdio.h> #include <conio.h> #define _USE_MATH_DEFINES #include <math.h> double getVolumeOfSphere(double dr); void main (void) { double getVolumeOfSphere(double dr); getch(); return 0; } double getVolumeOfSphere(double dr) { double v; double r; r = 2; v = 4 / 3 *M_PI*r*r; printf("Volumen= %f", v); }
Wenn ich nun das Programm starte, bekomme ich nur eine leere Kommando Zeile. Wenn ich bei der Funktion statt double überall void hinschreibe funktioniert es. Es scheint also mit dem double als Rückgabewert zu tun zu haben. Da ich aber noch relativ wenig Ahnung habe, wollte ich hier nachfragen, wie ich diesen Fehler behebe und am besten auch mit Erklärung warum es so nicht funktioniert, damit ich es für die Zukunft weiß. Wir verwenden Visual Studio zum programmieren.
Schon mal im voraus Danke
Fantoka
-
Zeile 8: Das ist der falsche Prototyp für
main
. https://www.c-plusplus.net/forum/viewtopic.php?t=39346Zeile 10: Das ist nur eine Deklaration. Die hat in einer Funktion (hier main) nichts zu suchen.
Ein Funktionsaufruf sieht anders aus.Zeile 25: 4 / 3 ist eine Interger-Division. Da kommt 1 raus und somit das falsche Ergebnis.
Zeile 27: Das Ergebnis sollte besser in der rufenden Funktion ausgegeben werden.
Zeile 28: Es fehlt return mit dem Rückgabewert (Das berechnete Volumen).
Zudem wäre es auch praktisch, den Parameter dr zu benutzen, damit du beliebige Radien verwenden kannst
Deine Annahme für den Fehler ist falsch.
-
Außerdem ist das Volumen einer 3-dim. Kugel 4./3 pi r^3 (nicht r^2).
Eine Sphäre ist der Rand (~ Oberfläche) einer Kugel; die 2-dim. Oberfläche einer 3-dim. Kugel hat den Inhalt 4 pi r^2
-
Vielen Dank für eure schnelle Hilfe :D;
Habe nun die entsprechenden Zeilen verbessert und nun funktioniert es so wie gewollt. Hoffentlich werde ich die selben Fehler in Zukunft jetzt nicht mehr machen.
Nochmals Danke für die Hilfe,
Fantoka