您好我正在创建一个程序,其中输入一个整数数组(xs)和一个名为k的变量。该函数查找下一个“k”个连续元素的平均值,并返回包含平均值的另一个数组。 例如。 k = 4 xs =(1,2,3,4,5,6)输出为(2,3,4),因为1,2,3,4的平均值为2; 2,3,4,5是3; 3,4,5,6是4.然而,我一直在犯错误,我做错了什么?
static int[] averagek(int k, int[] xs) {
int size = (xs.length) - (k-1);
int[] averagek = new int[size];
int add = 0;
for (int i = 0; i<(xs.length-k); i++){
for (int j = 0; j < (k+1); j++){
add = (add + xs[i+j]);
}
int average = (add)/k;
averagek[i] = average;
}
return averagek;
}
答案 0 :(得分:0)
检查运行方法avaragek时,k不超过xs.length。如果k大于xs.length而不是它不会起作用,因为变量大小要么是0还是负数,并且有一半长度为一个或多个。