Berechnung im Array

Status
Nicht offen für weitere Antworten.
H

Hilfe

Gast
Guten Morgen allerseits!!

Hab' da ein Problem mit einem int-Array: hab' erst Größe und Zahlen des Arrays einlesen lassen, dann geprüft, ob es auf- oder absteigend sortiert ist. Bis hierhin klappt alles super, doch nun möchte ich eine Methode schreiben, die mir berechnet, wie viele Zahlen im Array mehrfach vorkommen.
z.B.: 1 2 2 3 5 5 5 9 10 10 -> drei Zahlen kommen mehrfach vor (2, 5 und 10)

Ich hab' auch schon an 'ner Methode gebastelt (die outprints hab' ich nur zu meiner Kontrolle gesetzt; werden nachher durch returns ersetzt...)

Code:
static void sameDigits(int[] a) {
    int cnt = 0;
    for (int j = 0; j < a.length; j++) {
        int max = a[j];
        if (max == a[j+1]) {
        cnt++;
        Out.println("Gleiche Zahlen im Array: " + cnt);
        } else {
            Out.println("Keine gleichen Elemente im Array!");
        }
    }
}


Ausgabe:

Arraygroesze: 6
Zahlen des Arrays: 1 2 3 3 4 4
Eingegebenes Array: 1 2 3 3 4 4
Array ist aufsteigend sortiert.
Keine gleichen Elemente im Array!
Keine gleichen Elemente im Array!
Gleiche Zahlen im Array: 1
Keine gleichen Elemente im Array!
Gleiche Zahlen im Array: 2


Vielen lieben Dank für eure Hilfe; bin schon ein bisserl verzweifelt... :?
 

dsv fritz

Bekanntes Mitglied
Also, deine Methode macht eigentlich genau das, was du oben beschrieben hast. Möchtest du auch wissen, welche Zahlen explizit vorkommen?
 
H

Hilfe

Gast
Nein, ich möchte nur die Anzahl der Zahlen, die mehrfach vorkommen. Die Ausgabe sollte lauten:

1 1 2 2 2 3 5 66 '3

'3 steht für die drei Zahlen, die mehrfach vorkommen.
Aber wie mach ich das???

Danke
 

dsv fritz

Bekanntes Mitglied
Ach so, jetzt verstehe ich dein Problem:
Ganz einfach, du musst deine Outputs nach der Schleife setzen.
Code:
static void sameDigits(int[] a) { 
    int cnt = 0; 

    for (int j = 0; j < a.length; j++) { 
        int max = a[j]; 
        if (max == a[j+1]) { 
            cnt++;
        } 
    } 
    // Später soll anstelle der if-Anweisung nur return cnt; stehen ;-)
    if(cnt>0){
        Out.println("Gleiche Zahlen im Array: " + cnt); 
    }else{
        Out.println("Keine gleichen Elemente im Array!");
    }
}
 
H

Hilfe

Gast
Danke!! Allerdings hab ich jetzt ein anderes Problem: Ausgabe:

Arraygroesze: 6
Zahlen des Arrays: 1 1 5 9 9 10
Eingegebenes Array: 1 1 5 9 9 10
Array ist aufsteigend sortiert.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at Array.sameDigits(Array.java:108)
at Array.main(Array.java:35)


Ich stell' mal mein ganzes Programm rein, vielleicht möchte sich jemand die Mühe machen, mir zu helfen... Danke!!

Code:
import inout.*;

public class Array {
	
	public static void main(String args[]) {
		
				
		char choice;
		
		do {
			
			int[] a = readNumbers();
			Out.print(" Eingegebenes Array: "); 
			printArray(a);
			if (isSortedDownward(a) == true) {
				Out.println(" Array ist absteigend sortiert. ");
			} else if (isSortedAscending(a)== true) {
				Out.println(" Array ist aufsteigend sortiert. ");
				sameDigits(a);
			} else {//ASSERT: isSortedAscending(a)== false
				Out.println(" Array ist nicht aufsteigend sortiert.");
			}
			
			do {
				Out.print(" Noch ein Array zu pruefen (n /j)? ");
				choice = In.readChar();
				Out.println();
			} while (!In.done() || (choice != 'n')&& (choice != 'j'));
			/*if the input is another thing than "n" or "j", the program
			ask one more time "Weitere Berechnung?"*/	
		} while (choice == 'j');
	}
	
	
		
	// method for appoint length of an array and read digits of an array
	static int[] readNumbers() {
		Out.print( " Arraygroesze: ");
		int bigness = In.readInt();
		int[] a = new int[bigness];
		Out.print(" Zahlen des Arrays: ");
		for (int digits = 0; digits < bigness; digits++) {
			a[digits] = In.readInt();
		} return a;
		
	}
	
	// method for printing an array a
	static void printArray(int[] a) {
		for (int i = 0; i < a.length; i++) {
			Out.print(" " + a[i]);
		}
		Out.println();
	}
	
	static boolean isSortedAscending(int[] a) {
		for (int i = 0; i < a.length; i++) { 
        	for (int j = i; j < a.length; j++) { 
           		if (a[i] > a[j]) { 
              		return false; 
           		} 
        	} 
		} 
     	return true; 
	}
	static boolean isSortedDownward(int[] a) {
    	for (int i = 0; i < a.length; i++) { 
        	for (int j = i; j < a.length; j++) { 
           		if (a[i] < a[j]) { 
              		return false; 
           		} 
        	} 
     	} 
     	return true; 
	}

	
	static void sameDigits(int[] a) { 
    	int cnt = 0; 

    	for (int j = 0; j < a.length; j++) { 
        	int max = a[j]; 
        	if (max == a[j+1]) { 
            	cnt++; 
        	} 
   		} 
    	// Später soll anstelle der if-Anweisung nur return cnt; stehen ;-) 
    	if(cnt>0){ 
        	Out.println("Gleiche Zahlen im Array: " + cnt); 
    	}else{ 
        	Out.println("Keine gleichen Elemente im Array!"); 
    	} 
	}

}
 
S

SlaterB

Gast
for (int j = 0; j < a.length; j++) {
int max = a[j];
if (max == a[j+1]) {
cnt++;
}
}

da kommt die Exception wenn du auf das letzte Element (j=5) und noch das dahinter (j+1) zugreifen möchtest,
das muss also anders werden,

aber die Exception sagt dir doch auch die genaue Zeile oder?
 
H

Hilfe

Gast
... sorry, aber das versteh' ich jetzt nicht wirklich... ???:L
 
S

SlaterB

Gast
du schaust dir das letzte Element im Array an und vergleichst es mit dem folgenden (j+1),
da aber kein folgendes da ist gibt es eine Exception,

einfacheres Beispiel:
int[] x = new int[2];
int y = x[0]; // geht
y = x[1]; // geht
y = x[2]; // geht nicht, Exception!

was kann man daran nicht verstehen? mehr fällt mir zur Erklärung nicht ein
 

dsv fritz

Bekanntes Mitglied
Code:
static void sameDigits(int[] a) { 
    int cnt = 0; 
    for (int j = 1; j < a.length; j++) { 
        int max=a[j-1];
        if (max == a[j]) { 
            cnt++; 
        } 
    } 
    // Später soll anstelle der if-Anweisung nur return cnt; stehen ;-) 
    if(cnt>0){ 
        Out.println("Gleiche Zahlen im Array: " + cnt); 
    }else{ 
        Out.println("Keine gleichen Elemente im Array!"); 
    } 
}
 
H

Hilfe

Gast
Ok, und wie kann ich in meinem Programm diesen Fehler beheben??
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Temperatur-Berechnung /Array(?) Java Basics - Anfänger-Themen 5
I File Uploader... Statusanzeige, Berechnung des Status etc. Java Basics - Anfänger-Themen 0
Bugs Bunny Fehlerhafte Berechnung beim erneuten Durchlaufen der Schleife Java Basics - Anfänger-Themen 5
Jamie logische Verknüpfung zur Schaltjahr-Berechnung Java Basics - Anfänger-Themen 30
Stephan_kl Reihenwert-Berechnung, Ergebnis mit vorherigem Ergebnis vergleichen Java Basics - Anfänger-Themen 11
Abraham42 Berechnung der Kühlung Java Java Basics - Anfänger-Themen 12
S Hashcode-Berechnung + ^ Java Basics - Anfänger-Themen 2
J Median-Berechnung von 2D-Teilarrays Java Basics - Anfänger-Themen 56
F Tabelle - Berechnung Rang Java Basics - Anfänger-Themen 2
B Berechnung der Position von Kinderelemente von einem Elternknoten Java Basics - Anfänger-Themen 23
S Berechnung der sleep time ist falsch Java Basics - Anfänger-Themen 46
S Switch-Case zur Berechnung der Einkommensteuer Java Basics - Anfänger-Themen 15
F Berechnung der Rektaszension und Deklination eines Sterns Java Basics - Anfänger-Themen 7
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
V Erste Schritte Pi Berechnung Java Basics - Anfänger-Themen 47
M Berechnung der Reststrecke bei Graphen Java Basics - Anfänger-Themen 1
V Algorithmus zur fortlaufenden Berechnung des duechscjnt Java Basics - Anfänger-Themen 1
B Berechnung zu einer Schleife formen Java Basics - Anfänger-Themen 6
B Berechnung Median mit Methode Java Basics - Anfänger-Themen 7
CptK Methoden Berechnung von Anfangsgeschwindigkeit und Winkel Java Basics - Anfänger-Themen 27
K Erste Schritte Berechnung der Summe zweier Arrays Java Basics - Anfänger-Themen 15
S Erste Schritte Berechnung des Paketportos - Problem/Frage Java Basics - Anfänger-Themen 52
J Gleitkommazahlen, Berechnung von pi Java Basics - Anfänger-Themen 4
J Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
kilopack15 Verzweiflung wegen Berechnung mit Multithreading Java Basics - Anfänger-Themen 1
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
Salo Berechnung von Winkeln Java Basics - Anfänger-Themen 28
M Restbuchwert Berechnung geht nicht Java Basics - Anfänger-Themen 45
Ghostman1711 Pi berechnung Methode aufrufen Java Basics - Anfänger-Themen 2
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
beatles Operatoren Operatoren - Berechnung Java Basics - Anfänger-Themen 40
K Best Practice Algorithmus für Berechnung von Zahlenreihenfolge Java Basics - Anfänger-Themen 12
N Verzögerte Berechnung "Lazy" Java Basics - Anfänger-Themen 8
J Erste Schritte Rundungsproblem - Berechnung Notendurchschnitt Java Basics - Anfänger-Themen 13
S Variablen Vektor zur Berechnung verwenden Java Basics - Anfänger-Themen 4
T Java double berechnung fehler Java Basics - Anfänger-Themen 2
M Berechnung in Java Java Basics - Anfänger-Themen 4
S Berechnung der Arbeitstage in einem Zeitraum Java Basics - Anfänger-Themen 9
E Problem bei rekursiver Berechnung des Binomialkoeffizienten Java Basics - Anfänger-Themen 5
T Iterative Pi Berechnung in Rekursive Java Basics - Anfänger-Themen 2
S Double, int, Berechnung Java Basics - Anfänger-Themen 3
C Nach Berechnung runden und Wert ausgeben Java Basics - Anfänger-Themen 7
E Berechnung für Shop einbinden Java Basics - Anfänger-Themen 8
S Klassen Formel zur Berechnung .... Bitte um Hilfe Java Basics - Anfänger-Themen 7
S Euklid Algorithmus zur Berechnung des GGTs Java Basics - Anfänger-Themen 2
OnDemand Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
P Schleife zur Berechnung von einer Summe Java Basics - Anfänger-Themen 16
F Berechnung einer linearen Abschreibung Java Basics - Anfänger-Themen 5
E Berechnung von Punkten Java Basics - Anfänger-Themen 4
D Berechnung des Abstandes von zwei Punkten in einem Koordinatensystem Java Basics - Anfänger-Themen 14
A Methoden PI-Berechnung Java Basics - Anfänger-Themen 22
S Erste Schritte Berechnung mit Daten aus CSV und Date Objekt Java Basics - Anfänger-Themen 2
C Programm zur Berechnung der Spur einer Matrix Java Basics - Anfänger-Themen 4
P Pythagoras Baum - Berechnung der Punkte Java Basics - Anfänger-Themen 9
A Erste Schritte Steuer Berechnung, Alters Abhängig Java Basics - Anfänger-Themen 5
T Erste Schritte Berechnung von gerade und ungerade Zahlen Java Basics - Anfänger-Themen 10
J Erste Schritte Berechnung Ratten vermehrung Java Basics - Anfänger-Themen 4
P falsches ergebnis bei einfacher berechnung Java Basics - Anfänger-Themen 3
T Iterative Berechnung einer Satellitenbahn Java Basics - Anfänger-Themen 20
M Java Berechnung mit mehreren Lösungen? Java Basics - Anfänger-Themen 9
D Nullstellen-Berechnung Java Basics - Anfänger-Themen 10
L Fehlermeldung bei falscher Berechnung anzeigen Java Basics - Anfänger-Themen 31
A berechnung multiplikatives inverses Java Basics - Anfänger-Themen 5
J Berechnung des aktuellen Alters auf Basis des Geburtstags Java Basics - Anfänger-Themen 45
J Datentypen Fehler bei Berechnung mit Double und Int-Werten Java Basics - Anfänger-Themen 22
G Berechnung von Winkeln mit Cosinussatz Java Basics - Anfänger-Themen 2
B Arrays verwenden für Berechnung Java Basics - Anfänger-Themen 3
R Merkwürdige Modulo Berechnung Java Basics - Anfänger-Themen 7
B Hausaufgabe Berechnung quadratischer Funktion Java Basics - Anfänger-Themen 16
U Alter Berechnung + sortierung Java Basics - Anfänger-Themen 6
P Berechnung wird nicht durchgeführt Java Basics - Anfänger-Themen 2
D Berechnung von Ostern und Ramadan! Java Basics - Anfänger-Themen 24
N Algorithmus für Berechnung einer Quersumme Java Basics - Anfänger-Themen 9
D Berechnung von Geldausgabe Java Basics - Anfänger-Themen 22
F Berechnung von Kugeln! Java Basics - Anfänger-Themen 9
M rekursive Funktion zur Berechnung der Spiegelzahl Java Basics - Anfänger-Themen 7
S Hausaufgabe: Java-Programm schreiben zur Berechnung von x und y Java Basics - Anfänger-Themen 9
Y Ergebnis einer Berechnung an die Main Methode übergeben Java Basics - Anfänger-Themen 11
Semox Ersten Wert eines Intervalls bei Berechnung einschließen Java Basics - Anfänger-Themen 8
J Logarithmische Berechnung und Arrays Java Basics - Anfänger-Themen 2
B LinkedList - Berechnung des Produkts Java Basics - Anfänger-Themen 6
B Berechnung von Preisen per Java-Programm Java Basics - Anfänger-Themen 27
M Alters berechnung aus Geburtsjahr aus dem Buch Java Basics - Anfänger-Themen 5
O Fehler in der String-Distanz-Berechnung Java Basics - Anfänger-Themen 5
-horn- "Berechnung vorwärts, Optimierung rückwärts?" - Wie würdet ihr das machen? Java Basics - Anfänger-Themen 8
P iterative Berechnung Java Basics - Anfänger-Themen 9
1 Berechnung von PI mithilfe von Buffons Nadelproblem Java Basics - Anfänger-Themen 2
G Berechnung zwei Komplexen Zahlen Java Basics - Anfänger-Themen 34
N Rekursive Berechnung der Höhe eines binären Baumes Java Basics - Anfänger-Themen 4
J Programm für interaktive Berechnung von Temperaturverläufen Java Basics - Anfänger-Themen 9
K Annährende ganzzahlige Berechnung der Wurzel Java Basics - Anfänger-Themen 8
L Berechnung von Perioden Java Basics - Anfänger-Themen 4
D einfach berechnung einer onlinezeit Java Basics - Anfänger-Themen 25
S Euklid Klasse mit Methoden zur Berechnung des ggT Java Basics - Anfänger-Themen 23
G Frage zur Primzahlen berechnung Java Basics - Anfänger-Themen 11
G Berechnung von N-Tageslinien von Aktienkursen Java Basics - Anfänger-Themen 13
G Rekursive Berechnung von n über k schlägt fehl Java Basics - Anfänger-Themen 5
G Einfache Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
W Schaltjahr Berechnung Java Basics - Anfänger-Themen 24
A Probleme mit Programm zur Pi-Berechnung Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben