Hilfe - Array Aufgabe

mcm19

Mitglied
Hallo zusammen,

ich habe ein Problem. Ich hab eine Aufgabe (siehe unten) die ich leider nicht lösen kann. Als Ergebnis müssen die 4 Werte kommen. Bei mir kommt nur 560. Wenn ich break lösche kommt dann nur 7800 auf der Console.
Was muss ich tun, damit ich die Werte auf meine Console hab?

Danke euch im Voraus !!

1626813102158.png



1626812984706.png
 
Bitte Code immer in Code-Tags posten (</> im Editor anklicken).

Du setzt die Variable anzahlGroesserAls100 auf den Feldinhalt. Du willst aber nur zählen, also mit 0 beginnen und immer, wenn Du auf einen Feldinhalt größer als 100 stößt, um 1 erhöhen.
 
Bitte Code immer in Code-Tags posten (</> im Editor anklicken).

Du setzt die Variable anzahlGroesserAls100 auf den Feldinhalt. Du willst aber nur zählen, also mit 0 beginnen und immer, wenn Du auf einen Feldinhalt größer als 100 stößt, um 1 erhöhen.
Oh vielen Dank! Hab Code hinzugefügt.


Java:
public class Berechner {

    public int anzahlGroesserAls100(int[]feld) {
        int laenge = feld.length;
        int anzahlGroesserAls100 = feld[0];
        
        for (int i=0; i< laenge; i++) {
            if(feld[i]>100){
            anzahlGroesserAls100= feld[i];
            break;
            }
        
        }
        return anzahlGroesserAls100;
    }
    
    
    
    
    public static void main(String[] args) {
        int [] feld = new int[6];
        feld[0] = 10;
        feld[1] = 560;
        feld[2] = 999;
        feld[3] = 288;
        feld[4] = 1;
        feld[5] = 7800;
        
        Berechner be = new Berechner();
        int anzahl = be.anzahlGroesserAls100(feld);
        System.out.println(anzahl);

    }

}
 
Schau einfach mal: Was passiert in den Zeilen:
int anzahlGroesserAls100 = feld[0];
anzahlGroesserAls100= feld[i];

Was steht dann in der Variable?

Und was soll denn in der Variable (Im Namen steht Anzahl!) sein,
- ehe eine Zahl größer 100 gefunden wurde
- nachdem eine Zahl größer 100 gefunden wurde.

Oder spiel es einfach einmal durch. Du hast die folgenden Zahlen gegeben:
10, 560, 999, 288, 1, 7800

Und nun sollst Du die Anzahl der Zahlen größer 100 zählen.

Weil erst eine 10 kommt, ist die Anzahl der Zahlen größer 100 erst einmal 10.
Dann kommst Du zu der 560, die ist größer, also ist die Anzahl der Zahlen größer 100 nun 560?
u.s.w.?
(Das ist ja das, was Du derzeit implementiert hast.)
 
Hier mit Kommentar, was du gerade machst. In der Zusammenfassung, gibst du als Ergebnis das erste Element zurück, das größer als 100 ist.
Java:
    public int anzahlGroesserAls100(int[]feld) {
        int laenge = feld.length; // Die Länge des Feldes wird in der neuen Variablen "laenge" gespeichert
        int anzahlGroesserAls100 = feld[0]; // Der Inhalt des ersten Feldelements wird in der neuen Variablen "anzahlGroesserAls100" gespeichert
 
        for (int i=0; i< laenge; i++) { // der Schleifenindex i geht vom ersten bis zum letzten Element des Feldes
            if(feld[i]>100){ // Wenn das aktuelle Feldelement größer als 100 ist, dann..
            anzahlGroesserAls100= feld[i]; // wird der Inhalt dieses Elementes in der Variablen "anzahlGroesserAls100" gespeichert
            break; // und die Schleife wird abgebrochen
            }
 
        }
        return anzahlGroesserAls100; // der Inhalt der Variablen wird als Rückgabewert der Methode zurück gegeben
    }

Jetzt vergleiche dies mit dem, was du tun sollst: "als Rückgabewert die Anzahl der Elemente, die größer als 100 sind.."

Wie oben schon mehrfach erwähnt, sollst du etwas zählen und zählen bedeutet meist einfach 1 zu addieren. Wenn du Schafe zählst, dann erhöhst du mit jedem imaginären Schaf, das über den imaginären Zaun springt, den Schafzähler um eins.

EDIT: Ein Beispiel für einen Zähler siehst du direkt in deinem Programm. Der Schleifenindex "i" startet bei 0 und wird mit jedem Schleifendurchlauf um 1 erhöht.
 
Zuletzt bearbeitet:
[CODE lang="java" title="Sollte denke ich so aussehen:"]

public int anzahlGroesserAls100(int[]feld) {
int laenge = feld.length;
int anzahlGroesserAls100=0;

for (int i=0; i<laenge; i++) {
if(feld>100)
anzahlGroesserAls100++;
}

return anzahlGroesserAls100;
}

[/CODE]
 

Zurück
Oben