Guten Abend,
bisher hat mir StackOverflow immer enorm bei der Lösungsfindung zu Übungsaufgaben der Hochschule weitergeholfen.
Dafür erstmal dankeschön an alle fleißigen beteiligten.
momentan stehe ich allerdings seit 3 Tagen auf dem Schlauch und ich komme nicht weiter.
Meine Aufgabe ist eine Scanner Eingabe zu überprüfen und die einzelnen werte der übergabe auf gleichheit mit den zuvorkommenden Int werten zu vergleichen.
meine Notizen und der (Sehr unschöne Code) sind angehangen in diesem Beitrag.
Problem ist nun das ich nicht die Ergebnisse bekomme die ich mir in meinen schönen Notizen zusammengereimt habe.
Ich vermute das der Fehler darin liegt das der alte Wert, nicht in der Variablen old zwischengespeichert wird und somit die Aussage (input == old) keinen sinn macht da diese immer Identisch sind.
Außerdem denke ich das die Variable maxNow unnötig ist und das der max wert nicht den höchsten current wert speichert
Ich hoffe das mir weitergeholfen werden kann da ich mit meinen Ideen langsam zum ende komme
Für die folgende Hilfe bedanke ich mich schonmal im vorraus.
Mir ist bewusst das ein ähnliches Thema bereits besprochen wurde allerdings möchte ich die Erstellung eines Arrays tunlichst vermeiden, da jede Ausgabelänge aufgenommen werden soll.
Eine for schleife kommt ebenfalls nicht in Frage.
input = 1 2 3;
old = 1 2 3;
die werte 1 und 2 sind != somit ist die Sequenzlänge 1
wenn der input 1 1 2 wäre
wäre die Sequenzlänge 2
wenn der input 1 1 1
wäre wäre die sequenzlänge 3, da die Inputwerte zu den old werten identisch sind
current wird solange hochgezählt wie die input werte identisch zu den old werten sind
wenn current größer als 1 ist wird die Sequenzlänge in max gespeichert und ersetzt
sobald current >= max ist nimmt max den neuen current wert
am ende wird max ausgegeben als längste kette
old soll den vorangegangenen wert speichern
current soll die Sequenzlänge der aktuellen Sequenz ausgeben
if (old == input){
current ++;
if (old != input){
current = 1;
if (current > 1)
current = max;
if (current <= 1)
max = max
current = 1;
else{
setzt current auf 1 zurück um die schleife mit current 1 zu starten
max bleibt der letzte höchste current wert bis er übertroffen wird
}
der einzige sysout bleibt max da dies die längste sequenz speichert
bisher hat mir StackOverflow immer enorm bei der Lösungsfindung zu Übungsaufgaben der Hochschule weitergeholfen.
Dafür erstmal dankeschön an alle fleißigen beteiligten.
momentan stehe ich allerdings seit 3 Tagen auf dem Schlauch und ich komme nicht weiter.
Meine Aufgabe ist eine Scanner Eingabe zu überprüfen und die einzelnen werte der übergabe auf gleichheit mit den zuvorkommenden Int werten zu vergleichen.
meine Notizen und der (Sehr unschöne Code) sind angehangen in diesem Beitrag.
Problem ist nun das ich nicht die Ergebnisse bekomme die ich mir in meinen schönen Notizen zusammengereimt habe.
Ich vermute das der Fehler darin liegt das der alte Wert, nicht in der Variablen old zwischengespeichert wird und somit die Aussage (input == old) keinen sinn macht da diese immer Identisch sind.
Außerdem denke ich das die Variable maxNow unnötig ist und das der max wert nicht den höchsten current wert speichert
Ich hoffe das mir weitergeholfen werden kann da ich mit meinen Ideen langsam zum ende komme
Für die folgende Hilfe bedanke ich mich schonmal im vorraus.
Mir ist bewusst das ein ähnliches Thema bereits besprochen wurde allerdings möchte ich die Erstellung eines Arrays tunlichst vermeiden, da jede Ausgabelänge aufgenommen werden soll.
Eine for schleife kommt ebenfalls nicht in Frage.
input = 1 2 3;
old = 1 2 3;
die werte 1 und 2 sind != somit ist die Sequenzlänge 1
wenn der input 1 1 2 wäre
wäre die Sequenzlänge 2
wenn der input 1 1 1
wäre wäre die sequenzlänge 3, da die Inputwerte zu den old werten identisch sind
current wird solange hochgezählt wie die input werte identisch zu den old werten sind
wenn current größer als 1 ist wird die Sequenzlänge in max gespeichert und ersetzt
sobald current >= max ist nimmt max den neuen current wert
am ende wird max ausgegeben als längste kette
old soll den vorangegangenen wert speichern
current soll die Sequenzlänge der aktuellen Sequenz ausgeben
if (old == input){
current ++;
if (old != input){
current = 1;
if (current > 1)
current = max;
if (current <= 1)
max = max
current = 1;
else{
setzt current auf 1 zurück um die schleife mit current 1 zu starten
max bleibt der letzte höchste current wert bis er übertroffen wird
}
der einzige sysout bleibt max da dies die längste sequenz speichert