Größte Zahl nach Eingabe der Zahl 0 ausgeben

SimonOsiris

Mitglied
Hallo, ich bräuchte Hilfe bei folgender Aufgabenstellung:

Lesen Sie solange Zahlen ein, bis die Zahl 0 eingegeben wird. Geben Sie danach die größte eingelesene Zahl aus (ohne Berücksichtigung der 0 zum Beenden der Eingabe). Geben Sie zusätzlich aus, an wievielter Stelle diese Zahl eingelesen wurde. Es werden ausschließlich int eingelesen.

Momentan sieht mein Programm so aus:

Frage1.PNG

Wie man sehen kann, habe ich es bereits geschafft mehrere Zahlen einzulesen. Allerdings weiß ich jetzt nicht mehr weiter wie ich es schaffen soll dass davon die größte Zahl ermittelt und ausgegeben wird. Danke schon einmal im voraus für eure Hilfe!
 
Paar Informationen:
  • Zu der Aufgabe gab es neulich erst einen Thread. Evtl. ist der ja hilfreich (einfach mal etwas suchen)
  • Dein Code hat ein Problem: die erste Zahl wird in der Schleife direkt überschrieben. Es reicht also eine Eingabe.

Aber zum generellen Thema:
Wenn man ein Programm schreiben will, dann ist es unerlässlich, dass man das Thema im Detail verstanden hat. Dazu kann ich Dir nur raten: Spiele es mit Stift und Papier durch! Dann merkst Du
a) was Du für Schritte machen musst.
b) was Du dir merken musst.

Daher: Hast Du es einmal durchgespielt? Was für Schritte hast Du da gemacht? (Und das in reiner Umgangssprache! Kein Java!)
Ziel muss sein, das so zu beschreiben, dass es jeder durchspielen kann auch ohne die Aufgabe selbst zu kennen!
 
Tipp du brauchst zwei Merker :

einmal für die Anzahl der Eingaben
und für die größte Eingegebne Zahl.

So nun überlege was mit Merker gemeint ist.
 
Danke für die Antworten!

Ich denke mit Merker sind Variablen gemeint?

Außerdem habe Ich glaube ich habe den Thread gefunden den KonradN gemeint hat und er hat mir ein wenig weitergeholfen.
Soweit ich die Aufgabenstellung verstehe sehen meine Schritte wie folgt aus:

1. Anzahl der Eingaben in einer Variable speichern
2. Werte der Eingaben in einer Variable speichern
3. Bei Eingabe von null den größten Wert und dessen Position ausgeben

Frage2.PNG

So sieht mein jetziger Code aus (gleich dem Code aus den anderen Thread).
Soweit verstehe ich auch was hier eigentlich passiert nur:
1) Die größten Zahl wird zwar ausgegeben, anscheinend ihre Position aber nicht?
2) Das Programm funktioniert nicht für negative Zahlen?

Ein ähnliches Problem hatte auch die Person im anderen Thread.
Eine Antwort diesbezüglich war: "Du könntest Dein max auf den kleinstmöglichen Wert (Integer.MIN_VALUE) initialisieren, dann werden auf negative Zahlen berücksichtigt."
In unserer Angabe steht ebenfalls als Tipp das es hilfreich wäre (Integer.MIN_VALUE) zu verwenden, allerdings verstehe ich leider nicht wie das in den Code einbaut wird.
 
du brauchst ja laut Aufgabe nicht alle eingaben speichern nur den größten Wert und die Pos Nummer wo der größte Wert eingehen wurde.
Also zähle einfach mit. Und wenn ein größerer aus der alte kommt merken und auch die Pos den zähler merken.
 
n unserer Angabe steht ebenfalls als Tipp das es hilfreich wäre (Integer.MIN_VALUE) zu verwenden, allerdings verstehe ich leider nicht wie das in den Code einbaut wird.
Java:
import java.util.Scanner;

public class Zahl {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int in;
        int possition = 0;
        int max = Integer.MIN_VALUE;
        int counter = 1;

        while ((in = sc.nextInt()) != 0) {
            if (in > max) {
                max = in;
                possition = counter;
            }
            counter++;
        }
        System.out.println("Die gröste Zhal ist : " + max + "  an der Pos : " + possition);

    }
}
 

Zurück
Oben