superhero Geschrieben 2. April 2011 Geschrieben 2. April 2011 Hallo! Ich bin noch totaler Java frischling und muss folgende Aufgabe lösen: Gegeben sei die folgende Aufgabe: Lassen Sie den Benutzer ganze Zahlen (int) über die Tastatur eingeben. Alle geraden Zahlen, die der Benutzer eingibt, sollen aufsummiert werden. Die erste negative Zahl (< 0) beendet die Eingabe. Lassen Sie dann die Gesamtsumme und die Anzahl aller eingegeben Zahlen ausgeben. Die letzte Zahl soll dabei nicht mit berücksichtigt werden. Das habe ich bis jetzt geschrieben: import java.util.Scanner; public class Aufgabe3 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Bitte gebe eine ganze Zahl ein"); // Fuer Eingabe mit Tastatur Scanner in = new Scanner(System.in); // Variablen deklarieren int Eingabe; int Summe = 0; int Zaehler = 0; do {Eingabe = in.nextInt(); if (Eingabe %2 ==0){ Summe = Eingabe + Summe; Zaehler++;} else Zaehler++; } while (Eingabe < 0); System.out.println("Summe der eingegebenen geraden Zahlen:" + (Summe)); System.out.println("Anzahl der eingegeben Zahlen:" + (Zaehler)); } } Leider funktioniert das ganze natürlich noch nicht so wie es soll, er beendet mir bei jeder positiven Zahl das Programm mit der Ausgabe, und bei negativen summiert er, irgendwie verdreht das ganze. Ich verstehs nich :/ Über Hilfe wäre ich wirklich sehr dankbar, diese Aufgabe wird am Montag testiert :/. Ergänzung: Die "letzte Zahl" ist die negative Zahl, die die das Programm beendet! Diese soll also nicht mit Aufsummiert oder mitgezählt werden. Zitieren
lupo49 Geschrieben 2. April 2011 Geschrieben 2. April 2011 Überprüfe mal die Abbruchbedingung deiner do-/while-Schleife. Zitieren
superhero Geschrieben 2. April 2011 Autor Geschrieben 2. April 2011 (bearbeitet) Oh Gott, da hatte ich nen dummen groben Denkfehler. Soll oben natürlich "while (Eingabe > 0)" sein. Gut, jetzt bin ich nen kleinen Schritt weiter, er hört bei der negativen Zahl auf. Das fehlt noch: Fehler 1: Der Zähler zählt noch die letzte Zahl mit und rechnet diese auch in die Summe. ->Die negative Zahl soll lediglich zur Ausgabe der Summe und Zähler führen. Fehler 2: Bei eingabe von 0 wird die Eingabe auch beendet. -> Die 0 soll gezählt werden, und die Eingabe nicht beenden. Bearbeitet 2. April 2011 von superhero Zitieren
superhero Geschrieben 2. April 2011 Autor Geschrieben 2. April 2011 Oh Gott, da hatte ich nen dummen groben Denkfehler. Soll oben natürlich "while (Eingabe > 0)" sein. Gut, jetzt bin ich nen kleinen Schritt weiter, er hört bei der negativen Zahl auf. Das fehlt noch: Fehler 1: Der Zähler zählt noch die letzte Zahl mit und rechnet diese auch in die Summe. ->Die negative Zahl soll lediglich zur Ausgabe der Summe und Zähler führen. Fehler 2: Bei eingabe von 0 wird die Eingabe auch beendet. -> Die 0 soll gezählt werden, und die Eingabe nicht beenden. wieder Quark, mit "while (Eingabe > -1)" wäre Fehler 2 gelöst, jetzt nurnoch Fehler 1 :/ Zitieren
flashpixx Geschrieben 2. April 2011 Geschrieben 2. April 2011 Verwende bitte das nächste Mal einen aussagekräftigen Titel Zitieren
superhero Geschrieben 2. April 2011 Autor Geschrieben 2. April 2011 Habs jetzt. Danke für den Denkanstoß. import java.util.Scanner; public class Aufgabe3 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Bitte gebe eine ganze Zahl ein"); // Fuer Eingabe mit Tastatur Scanner in = new Scanner(System.in); // Variablen deklarieren int Eingabe; int Summe = 0; int Zaehler = 0; do {Eingabe = in.nextInt(); if (Eingabe %2 ==0 && Eingabe > 0){ Summe = Eingabe + Summe; } if (Eingabe > -1) Zaehler++; } while (Eingabe > -1); System.out.println("Summe der eingegebenen geraden Zahlen:" + (Summe)); System.out.println("Anzahl der eingegeben Zahlen:" + (Zaehler)); } } Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.