Eigene Funktion
-
Hallo,
ich hab ein Problem mit folgender Aufgabe aus unserem Studium:Implementieren Sie die C-Funktionen:
int pruefe(int x, int y, int z);
Bilden x,y,z Dreieck, wenn ja Rückgabe 1, wenn nicht Rückgabe 0Funktion Dreieck, die aus x,y,z, Umfang und Fläche berechnen sol
Die Ergebnisse der Berechnung (Umfang und Fläche) sind über die Parameterliste zurückzugeben. Der Rückgabewert soll eine Information darüber geben, ob die Berechnung möglich ist (verwenden Sie die
Funktion pruefe).mein Quelltext sieht momentan so aus, der hat natürlich noch an vielen Stellen Baustellen:
int x,y,z,d,u,m; //x,y,z Seitenlaengen, a-Fläche, u-Umfang, s-heronsche Formel, d,m-Übergabe double s,a; int pruefe(int x,int y, int z) //bilden x,y,z überhaupt Dreieck? { if ((x+y<=z) || (x+z<=y) || (y+z<=x)) { d=0; } else { d=1; } return d; } double dreieck(int x,int y ,int z) { d=pruefe(x,y,z); if (d==0) { return d; } else { s=(x+y+z)/2; u=2*s; a=sqrt((s*(s-x)*(s-y)*(s-z))); return u,s; } int main() { printf("Bitte geben Sie die Laengen der Dreiecksseiten ein\n"); printf("Seite x= "); scanf("%d", &x); printf("Seite y= "); scanf("%d", &y); printf("Seite z= "); scanf("%d", &z); d=pruefe(x,y,z); if (d==0) { printf("Ihre Seitenlaengen ergeben kein Dreieck\n"); } else { } //printf("Der Umfang des Dreiecks beträgt: %d \n", u); //printf("Der Flächeninhalt des Dreiecks beträgt: %.2lf", a); return 0; }
meine Frage bzgl. eigener Funktionen ist, wie ich da zwei Parameter (hier für Fläche/Umfang) zurückgeben kann, und wie ich das gleichzeitig in abhängigkeit von der anderen Funktion machen kann, die ja praktisch als Bedingung für die andere da ist?
Lg
-
Das Stichwort dazu heißt Call by Reference. Du musst mit Zeigern arbeiten.
-
kvora schrieb:
meine Frage bzgl. eigener Funktionen ist, wie ich da zwei Parameter (hier für Fläche/Umfang) zurückgeben kann,
Die Ergebnisse der Berechnung (Umfang und Fläche) sind über die Parameterliste zurückzugeben.
Du sollst da mit Zeigern arbeiten und darüber die Werte zurückgeben
und wie ich das gleichzeitig in abhängigkeit von der anderen Funktion machen kann, die ja praktisch als Bedingung für die andere da ist?
Indem du die andere Funktion benutzt? Zum Beispiel ganz am Anfang:
if (pruefe(parameter)) { eigentliche rechnung } else { fehlerfall }