2012-12-15 144 views
0
public void calculatePercentage(int exam[][]) 
    { 
     int perc = 0; 
     for (int i = 0; i < examen.length; i++) 
     { 
      for (int[] score : exam) 
       perc += score; 
      perc /= exam.length; 
     } 
    } 

你好, 我真的被困在這一個。我想創建一個新的方法calculatePercentages給出參數exam [] []。雙數組考試包含3行元素。該方法所要做的就是簡單地計算每一行的總和。答案可能很簡單,但我不知道該怎麼做。 對於單個陣列,我想的代碼是:雙陣列操作單陣列

double perc = 0; 
    for(int score : exam) 
    { 
      perc += score; 
    } 
    perc /= (exam.length); 
    return perc; 

考試[] []可能看起來像:

| 10 12 18 5 3 | | 12 3 5 15 20 | | 20 15 13 11 9 |

輸出百分比[]謹:

{48,55,68}百分比[]中的每一個元素是1行考試的元件的[]

+1

顯示示例輸入和示例輸出,因爲它根本不清楚。 –

+0

是的,它不清楚,爲什麼方法的名稱是calculatePercentage,如果它只是總結它? – Amar

+0

見上面,我輸入了一個可能的輸入和輸出 – STheFox

回答

3

雙陣列考試保持3行元件。該方法所要做的就是簡單地計算每一行的總和。

該名稱沒有任何意義,但它做你想做的事情。

public int[] calculatePercentage(int exam[][]) { 
    int[] sums = new int[exam.length]; 
    for (int i = 0; i < exam.length; i++) { 
     int sum = 0; 
     for (int j = 0; j < exam[i].length; j++) { 
       sum += exam[i][j]; 
     } 
     sums[i] = sum; 
    } 
    return sums; 
} 

另外一個雙陣列將是double[],你正在談論二維INT陣列int[][]

EDIT

Pshemo指出較短的解決方案是可能的:

public int[] calculatePercentage(int exam[][]) { 
    int[] sums = new int[exam.length]; 
    for (int i = 0; i < exam.length; i++) { 
     for (int j = 0; j < exam[i].length; j++) { 
       sums[i] += exam[i][j]; 
     } 
    } 
    return sums; 
} 

甚至只是

public int[] calculatePercentage(int exam[][]) { 
    int[] sums = new int[exam.length]; 
    for (int i = 0; i < exam.length; i++) 
     for (int j = 0; j < exam[i].length; j++) 
       sums[i] += exam[i][j]; 
    return sums; 
} 

但我仍然更喜歡第一個,因爲它的可讀性。

+1

+1,但你不需要臨時'sum'變量,因爲你已經有'sums [i]'在開始時爲0。你可以只用'for(int j = 0; j Pshemo

+0

的確,2維數組,對不起, – STheFox

+0

@jlordo,第二行,是不是必須是int [] sums = new int [exam [i] .length];? 因爲現在你將創​​建一個長度爲5的數組,並且我需要在第二行中有3個長的 – STheFox

0
for (int i = 0; i < exam.length; i++) { 
     int sum = 0; 
     for (int j = 0; j < exam[i].length; j++) { 
      sum += exam[i][j]; 
     } 

    } 

使用總和對於每個

for (int x[] : exam) { 
     for (int y : x) { 

     sum += y; 
     } 
} 
+0

@無關緊要,你是對的。 –

+0

這是一個錯誤,謝謝 –

+0

謝謝mohammod hossain,但我已經有了一個解決方案。我很感激你。 – STheFox