2012-03-19 58 views
1

我在方法之間傳遞數組時遇到問題,並在下面摘錄了我的代碼。如何在方法之間正確傳遞數組

我已經成功創建了兩個數組,computerDicehumanDice,現在我需要計算每個數組中的數目,二進制數,三進制數等。請參閱代碼下面的示例。我已經驗證了a)輸入數組包含有效數據和b)。計數器正常工作。

但是,現在我試圖返回occurences作爲一個數組 - 六個不同的值occurence表示數組中的兩個,三個,等等被髮送到該方法 - 並且不成功。我一直有我的occurence返回...不兼容的類型,操作數輸入錯誤的操作數的問題+ ...和我嘗試的每件事情有所不同。我明顯錯過了如何投射/填充這個變量。

注:這是作業;我只是想抓住我的概念錯誤步驟。

// SEND VALUES TO numToFind AND CREATE SCORING ARRAY FOR computerDice AND humanDice 
     for(int i=1;i<7;i++) 
     { 
      int[] pipCountsComputer = findVals(computerDice,i); 
      int[] pipCountsHuman = findVals(humanDice,i); 
      System.out.println(i + " " + pipCountsComputer + " " + pipCountsHuman); 
     } 
    } 
// 
// COUNT INSTANCES OF numToFind IN arr[] AND RETURN THE occurence 
    public static int[] findVals(int[] arr, int numToFind) 
    { 
     int[] occurence=0; 
     for (int i = 0; i < arr.length; i++) 
     { 
      if (arr[i] == numToFind) 
       occurence = occurence+1; 
     } 
     return occurence; 
    } 

我已經驗證了,例如,給出computerArray = 52334humanArray = 11163我print語句產生:

1 0 3(的人,電腦已經0的,人有3級的)
2 1 0(兩個,電腦有1兩個,人有0兩個)
3 2 1
4 1 0我對這個數據集所需的陣列是:
5 1 0pipCountsComputer{0,1,2,1,1,1}
6 0 1pipCountsHuman{3,0,1,0,0,1}

+0

'++'是原始類型的一元運算符。數組不是原始類型。 – Jeffrey 2012-03-19 02:38:39

+0

你試圖做的事情沒有意義。您正在計算髮生的次數,當然這是一個單一的數字,並且您希望將其作爲一個數組返回。數組包含什麼? – Guffa 2012-03-19 02:41:21

+0

你發佈的代碼不會編譯。你正在返回'occurrence',但你的返回類型是'void'。 – kentcdodds 2012-03-19 02:44:09

回答

3

如果我理解正確的話,試試這個計數出現次數:

public static int findVals(int[] arr, int numToFind) { 
    int occurence = 0; 
    for (int i = 0; i < arr.length; i++) { 
     if (arr[i] == numToFind) 
      occurence++; 
    } 
    return occurence; 
} 

我真的不明白爲什麼要返回一個數組,一個發生只是一個數字。

2

由於這種氣味像功課,我不會給你答案,但暗示它...

現在我試圖返回OCCURENCES作爲數組

您還沒有編碼這個尚未...看方法簽名再次

public static void findVals(int[] arr, int numToFind)

+0

家庭作業的確如此。當這件事發生時,我正在添加作業標籤和免責聲明。 :)如果你提示需要將void改爲int [],那麼我已經做到了。我也發佈了我的「之後」代碼......(我〜發佈了我的「之前」代碼)... – dwwilson66 2012-03-19 03:02:52