在java中获取0作为数组的和
当我测试我的代码时,我一直得到0作为以下代码的总和和平均值,但它仍然编译。我真的不确定我做错了什么在java中获取0作为数组的和,java,arrays,Java,Arrays,当我测试我的代码时,我一直得到0作为以下代码的总和和平均值,但它仍然编译。我真的不确定我做错了什么 public class Array { int array[]; int sum; Array(int[] array) { this.array = new int[10]; } public int sum(){ for (int i = 0; i < array.length - 1; i++) sum += sum +
public class Array {
int array[];
int sum;
Array(int[] array) {
this.array = new int[10];
}
public int sum(){
for (int i = 0; i < array.length - 1; i++)
sum += sum + array[i];
return sum;
}
public double average() {
for (int i = 0; i < array.length - 1; i++)
sum += sum + array[i];
int average = sum / array.length;
return average;
}
}
公共类数组{
int数组[];
整数和;
数组(int[]数组){
this.array=新整数[10];
}
公共整数和(){
for(int i=0;i
问题:
- 写入的数组只包含零
- 你的
sum+=sum+数组[i]代码>不正确。使用
或在右侧使用sum并使用+=
,但不能同时使用两者=
- 你的平均数应该将分子或分母转换为双精度,这样你就可以进行双精度除法而不是整数除法
Array(int[] array) {
this.array = array;
}
把总数改为
sum = sum + array[i];
or
sum += array[i];
应该是:
sum += array[i];
for (int i = 0; i < array.length; i++) {
// additional logic
}
在for循环中,你不会从长度中减去1,因为你从索引0开始
应该是:
sum += array[i];
for (int i = 0; i < array.length; i++) {
// additional logic
}
for(int i=0;i
1.Change
Array(int[] array) {
this.array = new int[10];
}
到
2.改变
sum += sum + array[i];
到
3.改变
for (int i = 0; i < array.length - 1; i++)
for(int i=0;i
到
for(int i=0;i
这里有一些错误
public class Array {
int array[];
int sum;
Array(int[] array) {
this.array = new int[10];
// this is write but wrong because if you are getting array of int as an argument then why you are not using it. here you can write like this
// this.array = array;
}
public int sum(){
for (int i = 0; i < array.length - 1; i++)
sum += sum + array[i];
// what is this? completely wrong logic for adding here you can use like this
// sum += array[i] or you can use
// sum = sum + array[i]
return sum;
}
public double average() {
for (int i = 0; i < array.length - 1; i++)
sum += sum + array[i];
// same mistake again
// one more point is if you have called sum() function then sum(variable) is already having adding of arrays that time you can not summing up again
int average = sum / array.length;
return average;
}
}
公共类数组{
int数组[];
整数和;
数组(int[]数组){
this.array=新整数[10];
//这是写的,但是错误的,因为如果你得到int数组作为参数,那么为什么你不使用它
//this.array=数组;
}
公共整数和(){
for(int i=0;i
sum+=sum+数组[i]代码>?否。右侧有+=或和,但不是两者都有。另外,sum应该是一个局部变量,而不是一个字段。而且,您从未真正向我们展示初始化数组值的代码。你确定不是全是零吗?使用调试器查找。您的总和将不包括最后一个元素(检查循环中的条件);此外,每次调用sum()
时,都会增加类字段的值,因此对于数组{1,2,3,4}
sum();sum()
将首先返回10
,然后返回20
。为了更好地理解,我建议不要调用与类成员相同的构造函数输入参数。可能是“inputArray”或+1,当我们使用它时,不要将类命名为JDK中的类(这也是一个重要的类)
for (int i = 0; i < array.length - 1; i++)
for (int i = 0; i < array.length; i++)
public class Array {
int array[];
int sum;
Array(int[] array) {
this.array = new int[10];
// this is write but wrong because if you are getting array of int as an argument then why you are not using it. here you can write like this
// this.array = array;
}
public int sum(){
for (int i = 0; i < array.length - 1; i++)
sum += sum + array[i];
// what is this? completely wrong logic for adding here you can use like this
// sum += array[i] or you can use
// sum = sum + array[i]
return sum;
}
public double average() {
for (int i = 0; i < array.length - 1; i++)
sum += sum + array[i];
// same mistake again
// one more point is if you have called sum() function then sum(variable) is already having adding of arrays that time you can not summing up again
int average = sum / array.length;
return average;
}
}