2016-04-13 14 views
0

Ich versuche, die maximum value der last column zu finden, und ich muss es ausdrucken. Ich habe versucht mit der Double.max(); Methode, aber es funktioniert nicht für das spezifische Array und ich wollte ein Array für die 13. Spalte erstellen, aber es lässt mich nicht.Den maximalen Wert der letzten Zeile eines 2D-Arrays finden

import java.lang.reflect.Array; 

public class LabMidterm3 { 

public static void main(String[] args) { 
    double[][] myArray =new double [4][13]; 
    double row = myArray.length; 
    double column = myArray[0].length; 

    for (int i=0; i<row;i++){ 

     int sum =0; 

     for(int j=0; j<column;j++){ 

     double random = (int)(Math.random()*7.0); 
     myArray[i][j] = random; 
     sum+=myArray[i][j]; 
     System.out.print(myArray[i][j] + ", "); 
     double max = Array.getDouble(myArray, 13); 
     if(j==13){ 
     System.out.print("The max value is: " + max); 
     } 

     } 
     double rowAverage= sum/column; 
     if(i==1){ 
      System.out.println(); 
     System.out.print("The average is: " +rowAverage); 
     System.out.println(); 
     } 
     System.out.println(); 

     } 

} 
+1

Sie schreiben eine Anforderung und einen Code, aber keine Frage. Bitte beheben Sie dies. –

+1

Sagen Sie uns zum Beispiel, welche Probleme Sie mit dem Code haben, den Sie gepostet haben, was er zu tun versucht, was er tatsächlich tut, was Sie speziell verwirrt, ... etwas, was uns erlaubt zu verstehen, welches Problem * *du hast. –

+0

Entschuldigung, ich habe es bearbeitet. Ich habe versucht mit der Methode Double.max(); Um den maximalen Wert zu finden, aber da es ein Array ist, habe ich versucht, das MyArray als das Array und dann den 13. Index zu verwenden, aber das gab mir einen Fehler. – Paula

Antwort

2

Da Sie Berechnung (und Speichern) double Werte, werft nicht die random zu einem int. Als nächstes initialisieren Sie max auf einen nicht vorhandenen Wert, der garantiert kleiner ist als jeder vorhandene Wert (wie -∞). Verwenden Sie dann Math.max(double, double), um es zu aktualisieren, während Sie die Zeile durchlaufen. Und Sie können Arrays.toString(double[]) verwenden, um Ihre Zeile zu drucken. Drucken Sie schließlich den Durchschnittswert und den Maximalwert, nachdem Sie das Array aufgefüllt haben. Etwas wie

double sum = 0; 
double max = Double.NEGATIVE_INFINITY; 
for (int j = 0; j < column; j++) { 
    myArray[i][j] = Math.random() * 7.0; 
    max = Math.max(max, myArray[i][j]); 
    sum += myArray[i][j]; 
} 
System.out.println(Arrays.toString(myArray[i])); 
double rowAverage = sum/column; 
if (i == 1) { 
    System.out.println("The average is: " + rowAverage); 
    System.out.println("The max is: " + max); 
} 
+0

ooohhhh okay, das macht mehr Sinn wenn man es so erklärt. also kann ich Max innerhalb der Methode Math.max() verwenden? – Paula

+0

@Paula 'Math.max' erlaubt Ihnen, zwei Werte zu vergleichen und gibt den größeren zurück (es gibt auch' Math.min'). –

Verwandte Themen