Java Programm funktioniert nicht

Hi,
muss grad ein Programm für die Uni schreiben. Leider funktioniert es nur, wenn ich alles in die Main-Methode packe.
Evtl. könnt ihr mir helfen...
Stelle mal meinen Quellcode rein und die Aufgabenstellung.

Danke schonmal für eure Mithilfe


Aufgabenstellung:
Schreiben Sie ein Java-Programm, das 16 Integerzahlen zeilenweise in ein 4x4-Array einliest und dann teste, ob irgendwo in einer Zeile oder Spalte an benachbarten Positionen gleiche Werte stehen!

Mein bisheriges Ergebnis:

import java.io.*;

public class PropraUe294
{
static int Dimension = 4;

public static void main(String[] argv)
{
int dreieck [][] = new int [Dimension][Dimension];
einlesen();

//Auswertung
for (int i = 0; i < Dimension; i++){
for (int j = 0; j <Dimension; j++){
if (dreieck[j] == dreieck[j]){
System.out.println("dies sind "+dreieck[j]+ "gleiche Zahlen");
}
}
}

}

public void einlesen() throws IOException
{ int dreieck [][] = new int [Dimension][Dimension];
BufferedReader tastatur = new BufferedReader(new InputStreamReader(System.in));
//Eingabe von den verschiedenen Zahlen
String eingabe;
for(int i = 0; i < Dimension; i++){
for(int j = 0; j < Dimension; j++){
System.out.println("Bitte geben sie eine Zahl ein");
eingabe = tastatur.readLine();
dreieck[j] = Integer.parseInt(eingabe);
}
}
}

}
 
Hm, hab dein Code mal ein bißchen verändert. ich hoffe es hilft dir weiter.

Klasse mit der main:
Code:
public class Programm
{
	public static void main(String[] argv) 
	{
		int Dimension = 4;
		int[][] dreieck;
		
		//Aufruf der Eingabe
		dreieck = Eingabe.eingabe();

		//Auswertung Zeile
		for (int i = 0; i < Dimension; i++) 
		{
			for (int j = 0; j < Dimension-1; j++) 
			{
				if ((dreieck[i][j] == dreieck[i][j+1])) 
				{
					System.out.println("\nIn der Zeile i: " + i + ", Stelle j: " + j + ", j+1:" + (j+1) + " gibt es gleiche Zahlen: " + dreieck[i][j] +"\n");
				}
			}
		}
		//Auswertung Spalte
		for (int i = 0; i < Dimension-1; i++) 
		{
			for (int j = 0; j < Dimension; j++) 
			{
				if ( dreieck[i][j] == dreieck[i+1][j])
				{
					System.out.println("\nIn der Spalte j: " + j + ", Stelle i: " + j + ", i+1:" + (j+1) + " gibt es gleiche Zahlen: " + dreieck[i][j] +"\n");
				}
			}
		}
		

	}
}

Klasse für die Eingabe:
Code:
public class Eingabe 
{
	public static int[][] eingabe()
	{
	
		int Dimension = 4;
		int dreieck[][] = new int[Dimension][Dimension];

		for (int i = 0; i < Dimension; i++) 
		{
			for (int j = 0; j < Dimension; j++) 
			{
				System.out.println("Bitte geben sie eine Zahl ein");
				Scanner eingabe = new Scanner(System.in);
				String zahl = eingabe.next();
				dreieck[i][j] = Integer.parseInt(zahl);
			}
		}
		
		return dreieck;
	}	
}

Du hast bei deinem Code die if-Abfrage falsch geschrieben. Du mußt die aufeinanderfolgenden Werte vergleichen, nicht dieselben!

boernd

PS: Das Einlesen von der Konsole mit "Scanner" funktioniert erst ab JRE5. Du kannst aber zum einlesen aber auch den BufferedReader nehmen, bin's halt so gewöhnt.
PPS: Die IOException hab ich vergessen :rolleyes:
 
Also ich habe jetz ein paar Änderungen gemacht:
1) hat deine Methode "einlesen()" nichts zurückgegeben; dadurch war deine Matrix int[][] dreieck in der main() immer leer.
2) es ist besser wenn du auch die Untermethoden "static" declarierst, viele Compiler meckern da
3) Du muss noch deine Auswertung ändern (habe ich noch nich gemacht, war zu müde)...du vergleichst immer die gleiche Zelle mit sich selbst

Hier mein Code:
Code:
import java.io.*;

public class PropraUe294{
static int Dimension = 4;

public static void main(String[] argv) throws IOException{
	int[][] dreieck = einlesen();

	//Auswertung
	for (int i = 0; i < Dimension; i++){
		for (int j = 0; j <Dimension; j++){
			if (dreieck[i][j] == dreieck[i][j]){
				System.out.println("dies sind " + dreieck[i][j] +  "gleiche Zahlen");
			}
		}
	}
	printOut(dreieck);

}

private static void printOut(int[][] dreieck){
	for(int i=0; i<Dimension; i++){
		for (int j=0; j<Dimension; j++){
			System.out.print("["+dreieck[i][j]+"]");
		}
		System.out.println();
	}
}

private static int[][] einlesen() throws IOException { 
	int[][] dreieck  = new int [Dimension][Dimension];
	BufferedReader tastatur = new BufferedReader(new InputStreamReader(System.in));
	//Eingabe von den verschiedenen Zahlen
	String eingabe;
	for(int i = 0; i < Dimension; i++){
		for(int j = 0; j < Dimension; j++){
			System.out.println("Bitte geben sie eine Zahl ein");
			eingabe = tastatur.readLine();
			dreieck[i][j] = Integer.parseInt(eingabe);
		}
	}
	return dreieck;
}

}

Grüße
(p.s.: zum glück hab ich bereits Sommerpause in der UNI ;))

//EDIT
Ah...jetz haben wir 2mal gleichzeitig gepostet! Naja, besser, jetzt machst n'guten Mix aus beidem und du hast die Lösung :)
 
Zurück
Oben