Anzahl der gleichen Positionen im Array

sondr

Neues Mitglied
Hallo liebe Nutzer,

ich bin gerade dabei, Programmieren mit Java zu lernen, und unser Dozent hat uns ein Paar Heimübungen gegeben. Wir müssen bei einer Aufgabe davon eine Anzahl und dann entsprechend viele Werte in ein Feld einlesen lassen, danach sollen wir testen, wie oft sich im Feld an der Position "index" auch der Wert "index" befindet.
Soweit so gut, ich bekomme die Position heraus, jedoch habe ich folgendes Problem: Er will die ANZAHL wissen, also bspw. soll sich aus der Eingabe "5 2 1 4 3 2 " die Ausgabe "2" ergeben, da sich an den zwei Positionen 1 und 3 im Feld (startend mit Position 0) auch die Werte 1 und 3 befinden.
Mein Code sieht bisher so aus, ich weiß nicht, wie ich die 1 und die 3 zur Anzahl "2" zusammenfassen soll:

import java.util.Scanner;

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

Scanner sc = new Scanner(System.in);
int index;
int anzahl;
int[] feld;
int zaehler;

/* In den folgenden Bereich soll die Lösung eingesetzt werden: */

anzahl = sc.nextInt();
feld = new int[anzahl];

index = 0;
while ( index < anzahl )
{
feld[index] = sc.nextInt();
index++;
}

index = 0;
while ( index < anzahl )
{
if ( feld[index] == index ) System.out.println(index);
index++;
}
}
}


Danke schonmal im Voraus für mögliche Hilfestellungen! 🙂
 
An der Stelle, wo du jetzt den Index ausgibst, inkrementierst du einfach deine Zählervariable um eins 😉

Die Zählervariable kannste dann nach der Schleife ausgeben.
 
Bitte setze deinen Code immer in Code-Tags [code]//dein code[/code]

Java:
// Versuche solche Konstrukte zu vermeiden
index = 0;
while ( index < anzahl ) {
  feld[index] = sc.nextInt();
  index++;
}

// Besser in einer For-Schleife darstellbar
for(int index = 0; index < anzahl; index++) {
  feld[index] = sc.nextInt();
}
 
Danke euch beiden vielmals!
Leider will der Prof, dass wir GENAU mit den vorgegeben Methoden arbeiten, hier waren es die while-Schleifen, wobei ich die for-Schleifen auch viel handlicher finde. :/
So ganz komm ich mit dem Forum leider noch nicht klar, aber ich gebe mein Bestes! 😀
 

Zurück
Oben