我正在編寫一個計算區域經理(作爲學校項目)的銷售統計的小程序,用戶輸入銷售部門的數量,每個部門的每季度的銷售數量。嵌套For循環給出邏輯錯誤
程序輸出:
銷售(正確)
從上一季度每格(正確)
季度訂單總數(正確)
師總數(的銷量變化正確)
劃分平均值(正確)
每季度頂級部門(不正確,邏輯錯誤)
使用下面的銷售數字,我應該得到每季度頂級部門3,5,2,2的結果。使用其他數據給出相同的邏輯錯誤(不同的結果,仍然是錯誤的)。
唯一可以計算的是12行代碼段。 其餘的代碼已經過測試,並且正常工作,我的錯誤必須在這裏,在這個片段中。
int[] topDivQuarter = new int[4];
for(int quarter=0; quarter < 4; quarter++){
topDivQuarter[quarter] = 0; //Initialize at zero so division one is default top.
for(int div=1; div < divNumb ; div++){
//remember division first here, unlike the rest of the nested for loops.
//Initialized to one because need to compare to previous division
if ((sales[div][quarter]) > (sales[div - 1][quarter])){
topDivQuarter[quarter] = div;
}
}
}
我諮詢了兩位朋友,我們都沒有找到錯誤。
完整的代碼在這裏http://paste.ofcode.org/JvpVKB7c2NZrct2CAxscyH
測試銷售我一直在使用,
部門5,
DIV 1季度的1:1
DIV 1季度2:2
div 1 quarter 3:3
d IV 1季度4:4
DIV 2季度1:5
...(12345678912345678912)
結果是4,4,3,3,應該是3,5,2,2作爲每季度的頂級部門。
請原諒格式化的輸出,我現在正在修復這個錯誤。
您是否在IDE調試器中逐步瞭解了代碼?如果不是,那就是開始的地方。檢查每個步驟的變量,以瞭解它與您的期望偏離的位置。順便說一下,使用二維數組來表示這種類型的數據非常適合1960年代的Fortran。這是21世紀,你應該使用適當的類和數據結構。 –
「使用二維數組來表示這種類型的數據是1960年代Fortran的」很棒的一個!嘗試提供[mcve] *此處*,而不是鏈接。 –
@JimGarrison二維數組只是因爲它是一個學校項目,它不是我通常使用的東西。我更喜歡和班級一起工作。 我爬過調試器atm,但我沒有經驗使用它。只是意味着需要一些時間來弄清楚(我正在使用)。 –