matrix nach summe der spalten sortieren

Status
Nicht offen für weitere Antworten.

josi

Mitglied
hey!
habe ein programm geschrieben, dass ein zweidimensionales array der größe n mit zufallszahlen füllt. von den zeilen wird dann jeweils die summe berechnet und dann werden die zeilen nach der größe ihrer summen sortiert.

jetzt die frage: wie kann man das denn nach der summe der spalten sortieren? muss java ja klar machen, dass ich jeweils die ersten-n.ten elemente der spalten summieren möchte. wer kann helfen?

Code:
public static int summearray(int [] array) {
                   
 	 	 int summe = 0;
		for (int i=0; i< array.length; i++)  {
		summe = summe+array[i]; 
                                   } 
 	 	 	   
       	 	 return summe ;
		}

lg
 
zunächst mal brauchst du ein zweidimensionales Array, davon ist noch nicht viel zu sehen,

und dann ist es doch nicht schwer, die 5. Spalte aufzusummieren,
also
array[0][4]+array[1][4]+array[2][4]+.
in einer Schleife natürlich
 
danke! ist auch nur die ein unterprogramm. das komplette läuft, aber eben nur für addition der zeilenelemente. dachte, dass man das unterprogramm zum bestimmen der summe einfach auf die spalten abwandeln kann:

Code:
public static int summearray(int [][] array) {
                   
 	 	 int summe = 0;
		for (int i=0; i< array[i][n]; i++)  {
			
		summe = summe+array[i]; 
                                   } 
					return summe ;
		}


aber irgendwie werden durch diese methode wieder nur die summe der zeilen berechnet...
vielleicht kannst du mir so helfen. der fehler muss ja hier liegen
 
du brauchst das komplette zweidimensionales Array, wie ich schon fast in dieser Form geschrieben habe,

den Rest kann ich 1 zu 1 kopieren:
SlaterB hat gesagt.:
und dann ist es doch nicht schwer, die 5. Spalte aufzusummieren,
also
array[0][4]+array[1][4]+array[2][4]+.
in einer Schleife natürlich

wenn du bei sowas nur Bahnhof verstehst, dann weiß ich allerdings nicht, wie ich es in anderen Worten erklären soll,
bisschen Programmierwissen muss schon da sein
 
vielleicht kannst du mir jetzt sagen, wo es wie umgeschrieben werden muss. ist echt wichtig



Code:
public class new1 {

 static int[][] objekte, sortiert;  
 static int n;

 /**  
  *  
  *  Methode macht Zufallszahlen.   
  *	
 */  

    public static void zufallszahl (int n) {
		
	objekte = new int[n][n+2];
		for (int i = 0; i < n; i++) {    
		for (int j=0; j<n+2; j++) {			
			objekte[i][j] = (int) (Math.random() * 100);
	 
		} 
         } 
 	 } 
 
 	 /**
	*
	* 
	*
	*/
	public static int summearray(int [][] array) {
                   
 	 	 int summe = 0;
		for (int i=0; i< array[i][2]; i++)  {
			//for (int j=0; j< array[i][n+2].length; j++) {
		summe = summe+array[i]; 
                                   } 
							//}
			return summe ;
		}

	/**
 	 * 
 	 *    Methode sortiert 
 	 * 
 	 */ 
 
 	public static int[][] bubble (int[][] unsort) {
		int array1[];
		int array2[];
		
		for (int i = n-1; i > 0; i--) {
			for (int j = 0; j < i; j++) {
				array1 = unsort[i];
				array2 = unsort[j];
				B.wl("Vergleiche " + i + " und " + j + ".");
				if (summearray(array1) > summearray(array2)) {
					B.wl("=> vertausche " + i + " und " + j + ".");
					int[] tmp = array2;
					array2 = array1;
					array1 = tmp;
					
				}
				unsort[i] = array1;
				unsort[j] = array2;
			}
		}
		return unsort;
	}

	/**
	 * Hauptmethode
	 */
	public static void main(String[] args) {
		System.out.println();
		System.out.print("Anzahl der Zufallszahlen? ");
		n = B.readint();
		System.out.println();
                
		
                zufallszahl(n);


		
		for (int i = 0; i < n; i++) {
			for(int j=0; j<n+2; j++) {
			B.wr(objekte[i][j]+ " ");
			
                      } 
		    System.out.println();
			
		
		} 
 	 	 
		 System.out.println();
		 
		int temp [] = new int [n+2];
		for (int i = 0; i < n; i++) {
			for(int j=0; j<n+2; j++) {
			System.out.print(objekte[i][j]+ " ");
			temp[j] = objekte[i][j];       // eins von den Arrays in temp kopieren
                      } 
		    System.out.println();
			System.out.pr(summearray(temp));       // schreibt array und in nächste zeile ihre summen
		 }
		 
		 
		 
        B.wl();
		sortiert = bubble(objekte);
		for (int i = 0; i < n; i++) {
			for(int j=0; j<n+2; j++) {
			B.wr(sortiert[i][j]+ " ");
			temp[j] = sortiert[i][j];       // eins von den Array  in temp kopieren
                      }
		System.out.println();
		System.out.print(summearray(temp));
		}
               
	}

}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben