ggT+kgV geschlossen 

Status
Für weitere Antworten geschlossen.

Limette

Registered +
Registriert
Juli 2007
Beiträge
510
Servus zusammen,

ich habe die Aufgabe, eine Funktion in C# zu schreiben, die den größten gemeinsamen Teiler und das kleinste gemeinsame Vielfache zweier Zahlen berechnet.

Dazu kann ich folgenden Aufbau benutzen:
Code:
struct ggt_und_kgv {
int ggt;
int kgv;
};

ggt_und_kgv ggt_kgv(int lhs, int rhs);

Zwei Funktionen für die Berechnung des ggT und kgV hab ich auch schonmal:
Code:
 static int ggt(int lhs, int rhs)
{
if (lhs == rhs || rhs == 0) return lhs;
else return ggt(rhs, lhs % rhs);
}
Code:
 static int kgv(int lhs, int rhs)
{
return (lhs * rhs) / ggt(lhs, rhs);
}

Denke mal, dass meine Überlegungen soweit richtig sind.
Mein Problem ist nun: Wie implementiere ich das in EINE Funktion?
Es irritiert mich ein wenig, da sich die Funktionen ja gegenseitig aufrufen.
 
Du hast doch ein struct, das 2 Werte speichert, also:

Code:
ggt_und_kgv ggt_kgv(int lhs, int rhs) {
ggt_und_kgv ergebnis;
ergebnis->ggt = ggt(lhs,rhs);
ergebnis->kgv = kgv(lhr,rhs);
return ergebnis;
}
 
Ich glaub das stimmt nicht ganz, mit diesen -> kann mein Compiler nämlich nix anfangen :(

Aber auf den ersten Blick sieht das halbwegs nachvollziehbar aus.
 
Mit nem Punkt und ein paar Änderungen (public) funktionierts, danke!
Die Frage ist jetzt nur noch, wie ich die beiden Ergebnisse denn ausgebe (Write)?
 
Code:
static void Main()
{
int lhs = 4;
int rhs = 6;
ggt_und_kgv tmp = ggt_kgv(lhs,rhs)
System.Console.WriteLine(tmp.ggt);
System.Console.WriteLine(tmp.kgv);
}
So in der Art.
 
Vielen Dank für deine Hilfe Skyte, das funktioniert perfekt! :)
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

Zurück
Oben Unten