Hallo,
Diesmal habe ich einen Output-Fehler in Teilaufgabe 2 (Teilaufgabe 1 funktioniert
). Die genaue Aufgabenstellung lautet:
Hierbei entsteht folgende Fehlermeldung:

Falls mit jemand einen Tipp geben könnte, was ich in der Zweiten Teilaufgabe eventuell falsch mache, wäre ich sehr dankbar!
Diesmal habe ich einen Output-Fehler in Teilaufgabe 2 (Teilaufgabe 1 funktioniert
Mein Code lautet:Aufgabe 02
Teil 1 1 von 1 Tests bestanden
Schreiben Sie ein Programm, das berechnet, wie viele Kuchen mit einer gegebenen Menge von Zutaten gebacken werden können. Einfachheitshalber verwenden wir folgendes Grundrezept:
Benötigte Zutatenmengen pro Kuchen:
Der Benutzer wird aufgefordert, die verfügbare Menge der jeweiligen Zutaten einzugeben (in ganzen Zahlen). Danach soll ausgegeben werden, wie viele Kuchen mit diesen Menge gebacken werden können. Zusätzlich soll der verbleibende Rest pro Zutat ausgegeben werden.
- Mehl (in g): 200
- Zucker (in g): 100
- Eier (Stück): 2
Beispiel:
? Mehl: 1000
? Zucker: 400
? Eier: 7
Anzahl der Kuchen: 3
Rest: 400g Mehl, 100g Zucker, 1 Ei(er)
Beispiel:
? Mehl: 400
? Zucker: 400
? Eier: 4
Anzahl der Kuchen: 2
Rest: 0g Mehl, 200g Zucker, 0 Ei(er)
Teil 2 0 von 1 Tests bestanden
Wir nehmen an, die in Teil 1 gebackenen Kuchen sowie andere Speisen werden gegen freiwillige Spenden an eine Gruppe von Personen verteilt. Das Programm soll die eingenommene Spendensumme berechnen und auf Grundlage der Erzeugungskosten ausgeben, ob durch die Spendeneinnahmen ein Gewinn erzielt wurde oder ein Verlust entsteht. Die Erzeugungskosten für die Kuchen sind einzugeben.
Zuerst sollen die für das Backen entstandenen Erzeugungskosten (als Kommazahl) und die Anzahl der spendenden Personen eingegeben werden. Danach soll pro Person die Höhe der gegebenen Spende (als Kommazahl) eingegeben werden.
Sobald aufgrund der zuletzt eingegebenen Spende die laufende Spendensumme mindestens so hoch ist wie die Kosten, soll ein Hinweis ausgegeben werden (siehe Beispiel). Danach kann es noch weitere Spenden geben. Wird kein Gewinn erzielt (also übersteigen die Kosten die Gesamtspenden), soll das Programm am Ende "Verlust" ausgeben.
Achten Sie bei der Formatierung darauf, dass sie exakt den Beispielen entspricht.
Beispiel:
? Kosten: 5.20
? Anzahl der Abnehmer: 5
? Spende: 2.50
? Spende: 0.80
? Spende: 2.00
--- Gewinnzone ---
? Spende: 0.50
? Spende: 1.00
Gesamtspenden: 6.8
Beispiel:
? Kosten: 4.80
? Anzahl der Abnehmer: 3
? Spende: 0.5
? Spende: 1
? Spende: 0.20
Gesamtspenden: 1.7
Verlust
Beispiel:
? Kosten: 20
? Anzahl der Abnehmer: 2
? Spende: 20
--- Gewinnzone ---
? Spende: 0
Gesamtspenden: 20.0
Java:
package einfprog;
public class Bsp02 {
public static void main(String[] args) {
// TODO: Implement.
SavitchIn in = new SavitchIn();
// Zutatenmengen pro Kuchen
int mehlProKuchen = 200;
int zuckerProKuchen = 100;
int eierProKuchen = 2;
System.out.print("? Mehl: ");
int verfuegbaresMehl = in.readInt();
System.out.print("? Zucker: ");
int verfuegbarerZucker = in.readInt();
System.out.print("? Eier: ");
int verfuegbareEier = in.readInt();
// Anzahl der Kuchen
int anzahlKuchen = Math.min(
verfuegbaresMehl / mehlProKuchen,
Math.min(verfuegbarerZucker / zuckerProKuchen, verfuegbareEier / eierProKuchen)
);
// Rest
int restMehl = verfuegbaresMehl - anzahlKuchen * mehlProKuchen;
int restZucker = verfuegbarerZucker - anzahlKuchen * zuckerProKuchen;
int restEier = verfuegbareEier - anzahlKuchen * eierProKuchen;
System.out.println("Anzahl der Kuchen: " + anzahlKuchen);
System.out.println("Rest: " + restMehl + "g Mehl, " + restZucker + "g Zucker, " + restEier + " Ei(er)");
//Teil 2
System.out.print("? Kosten: ");
double kosten = in.readDouble();
System.out.print("? Anzahl der Abnehmer: ");
int anzahlAbnehmer = in.readInt();
// Gesamtspenden und Anzahl der Spenden
double gesamtspenden = 0;
int spendenAnzahl = 0;
boolean gewinnZoneErreicht = false;
// Eingabe der Spenden pro Person
while (true) {
System.out.print("? Spende: ");
double spende = in.readDouble();
gesamtspenden += spende;
if (!gewinnZoneErreicht && gesamtspenden >= kosten) {
gewinnZoneErreicht = true;
System.out.println("--- Gewinnzone ---");
}
// Wenn alle Personen gespendet haben
if (spendenAnzahl == anzahlAbnehmer) {
break;
}
}
System.out.println("Gesamtspenden: " + gesamtspenden);
// Prüfen, ob Gewinn oder Verlust erzielt wurde
if (gesamtspenden >= kosten) {
} else {
System.out.println("Verlust");
}
}
}
Hierbei entsteht folgende Fehlermeldung:

Falls mit jemand einen Tipp geben könnte, was ich in der Zweiten Teilaufgabe eventuell falsch mache, wäre ich sehr dankbar!