我的问题出在函数Sum(int )中,它应该返回索引z处的子数组中所有项的总和,如果索引无效,则返回0。我当前的代码是
public int[][] data;
public calculate(int[][] source) {
data = source;
}
public int size() {
return data.length;
}
public boolean isValidSubsetIndex(int z) {
if (z<0 || z>= size())
return false;
return true;
}
public int sum(int z) {
int x=0;
if (isValidSubsetIndex(z) == true) {
for (int i = 0; i < data[z].length;i++) {
for(int j= i; j<i+1; j++)
x = x + data[i][j];
}
return x;
}
return 0;
}
aP = new Analytics(new int[][]{{30, 10, 40},
{50, 20, 80},
{10, 60, 30},
{60, 60, 60}});
aHD = new Analytics(new int[][]{{-30, 10, -40},
{},
{-10, 60},
{-60},
{-20, -20, -20, -20, -20},
{-20, -20},
{-20},
{},
{50},
{10, 30, 20}});下面给出了它失败的测试。我当前的代码只提供第一个正确的结果(sum 80表示sum(0))。如果sum(1)结果应该是150,如果sum (2)结果应该是100
public void testSumHD() {
testSumD();
int[] sumHD = {-60, 0, 50, -60, -100, -40, -20, 0, 50, 60};
for(int i=0; i < sumHD.length; i++) {
assertEquals(sumHD[i], aHD.sum(i));
}
assertEquals(0, aHD.sum(-1));
assertEquals(0, aHD.sum(10));
}发布于 2021-03-15 20:31:27
解为x=x+ dataz;
https://stackoverflow.com/questions/66637224
复制相似问题