-1

コードをテストすると、次のコードの合計と平均が 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 + 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;
  }
}
4

5 に答える 5

0

1.変更

Array(int[] array) {
this.array = new int[10];
}

Array(int[] array) {
  this.array = array;
}

2.変更

 sum += sum + array[i];

sum += array[i];

3.変更

for (int i = 0; i < array.length - 1; i++)

for (int i = 0; i < array.length; i++)
于 2013-09-18T07:52:34.727 に答える
0

ここでいくつかの間違いがあります...

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;
     }
}
于 2013-12-20T05:16:04.633 に答える