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 0

    Funktion 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.


  • Mod

    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
     }
    

Anmelden zum Antworten