我正在编写一个计算区域经理(作为学校项目)的销售统计的小程序,用户输入销售部门的数量,每个部门的每季度的销售数量。嵌套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,但我没有经验使用它。只是意味着需要一些时间来弄清楚(我正在使用)。 –