2017-09-22 48 views
0

它只打印出第一列的平均值,但對下一列沒有任何影響。 它只打印出717,第一列平均值。這是一個衣衫襤褸的陣列。其他一切編譯得很好。衣衫襤褸的數組沒有顯示所有的平均值

import java.util.Scanner; 
import java.io.*; 
public class Fitness 
{ 
    public static void main(String [] args) 
    { 
    int [][] week = {{800,1000,100},{450,100,845,20,1200,200},{1800,250,400},{0,1500,800,120},{600,500},{700,1400,1700,100},{675}}; 
    System.out.println("Average over 7 days"); 
    avgCalb(week);  
    static void avgCalb(int [][] x) 
    { 
     for(int j = 0; j < x[0].length; j++) 
     { 
     int colTotal = 0; 
      for(int i = 0; i < x.length; i++) 
     { 
      colTotal = colTotal + x[i][j]; 

     } 
      System.out.println(colTotal/7); 
      break; 
     } 
     } 
    } 
+0

你爲什麼把那個 「破」;那裏的陳述?它在第一列後打破你的循環。 –

+0

,因爲如果不是它會給我一個數組索引超出範圍 – Jacob

回答

0

總結列

static void avgCalb(int [][] x) 
{ 
    int[] colTotal = new int[x.length]; 
    for(int j = 0; j < x.length; j++) 
    { 
    for(int i = 0; i < x[j].length; i++) 
    { 
     colTotal[i] += x[j][i] 

    } 
    } 

    for(int i = 0;i<colTotal.length;i++) { 
    System.out.println((double)colTotal[i]/colTotal.length); 
    } 
} 

總結行

static void avgCalb(int [][] x) 
{ 

    for(int j = 0; j < x.length; j++) 
    { 
    int colTotal = 0; 
    for(int i = 0; i < x[j].length; i++) 
    { 
     colTotal += x[j][i]; 

    } 
    System.out.println(colTotal/x[j].length); 
    } 

} 
+0

它仍然不顯示所有其他列的平均值。我必須添加所有列,然後獲取每個單獨的平均值。除以7爲每週的每週 – Jacob

+0

對不起,我不小心複製了你的「休息」 –

+0

你的代碼添加了所有行,我需要添加列 – Jacob

相關問題