Maximalwert in C anzeigen lassen.

MaxAufDerWolke

Grünschnabel
@Technipion hat dir bereits die Lösung in abstrakter Weise erklärt. Wo hakt es hier?

Bisschen konkreter:

C:
// "Man merkt sich, was bis jetzt der Maximalwert gewesen ist"
// d.h. eine Variable, initialisiert mit einem sehr niedrigen Wert, der sicherstellt,
// dass die erste Iteration den überschreibt. Hier im Anwendungsfall sollte
// -1 reichen, da negative Volumina nie auftreten -- Bugfreiheit vorausgesetzt.

do {
  volumen = (laenge - 2 * hoehe) * (breite - 2 * hoehe) * hoehe;

  // "Wenn der aktuelle Wert größer als der bisherige Maximalwert ist, hast du ein neues Maximum gefunden. Also merkst du dir diesen neuen Wert"

hoehe = hoehe + 0.5;

printf("\nHierbei betreagt das Volumen %.2f Quadrahzentimeter und die Hoehe %.2f ...",volumen,hoehe);
} while (hoehe <= hoehestop1);


Ja das stimmt schon, so habe ich mir das auch gedacht. Es hakt halt daran, dass im Programm umzusetzen Dass man zb den Wert max=0 (oder halt -1 wie du sagst) einfügst und dann sagst. Wenn das Volumen größer als dieser max Wert (der ja 0 ist) ist, überschreibe den max wert.
Aber wie kann man das in meinem Programm umsetzten in Code

C:
//in der Schleife
{
    
    ...
        
    if(volumen >= max)
    {
        //überschreibe den max Wert, aber wie?
        
    }   
    
    
}
 

ComFreek

Mod | @comfreek
Moderator
Das Überschreiben ist einfach nur eine Wertzuweisung an eine Variable. Das sollte in jedem Anfängerguide behandelt werden :) Am besten da also nochmal nachlesen. Nachdem das aber nur ein Einzeiler ist, spoiler ich dich: max = volumen
 

Zvoni

Erfahrenes Mitglied
Und jetzt spoiler ich dagegen: :p
Naja die Aufgabenstellung war erst eine Formel zu entwickeln, die das Volumen berechnet, dazu setzt man eine beliebige Höhe ein und rechet das Volumen der Kiste aus, die da wo das Volumen am größten es (wenn man es zeichnet sieht es aus wie eine Parabel) soll dann das größte Volumen mit der dazugehörigen Höhe ausgegeben werden.
Es werden also 2 Resultate erwartet
 

MaxAufDerWolke

Grünschnabel
Das Überschreiben ist einfach nur eine Wertzuweisung an eine Variable. Das sollte in jedem Anfängerguide behandelt werden :) Am besten da also nochmal nachlesen. Nachdem das aber nur ein Einzeiler ist, spoiler ich dich: max = volumen

Aber dort kommen ja, wenn man für die Breite den wert 50 nimmt, kommen 25 verschiedene Volumenwerte raus, also würde ja diese Zuweisung dazu führen dass es am Ende bei 0 bleibt.
 

Zvoni

Erfahrenes Mitglied
Aber dort kommen ja, wenn man für die Breite den wert 50 nimmt, kommen 25 verschiedene Volumenwerte raus, also würde ja diese Zuweisung dazu führen dass es am Ende bei 0 bleibt.
Wie kommst du denn da drauf? Du musst nur max mit -1 initialisieren (oder mit 0)
Auf deutsch: Wenn Volumen>=max dann max=Volumen --> Die Variable max wird definitiv einen von 0 höheren Wert am Ende haben (es sei denn du hast immer Volumen=0)
 

MaxAufDerWolke

Grünschnabel
Wie kommst du denn da drauf? Du musst nur max mit -1 initialisieren (oder mit 0)
Auf deutsch: Wenn Volumen>=max dann max=Volumen --> Die Variable max wird definitiv einen von 0 höheren Wert am Ende haben (es sei denn du hast immer Volumen=0)

Stimmt so ist das ok.

Jetzt habe ich den Volumenwert, nur wie bekomme ich die dazugehörige Höhe?

Weil die höhe ist ja nicht die größte und auch nicht die kleinste...