从采用两个参数java的方法创建新数组

时间:2019-04-24 14:43:58

标签: java arrays

我是编程和尝试学习Java的新手,我正尝试回答一些初学者觉得很困难的Java问题。该问题要求编写一个方法,该方法以double c和类型为v的数组double作为参数。该方法应返回通过将数组double的所有元素乘以v形成的c新数组。

我真的不知道要这样做,如果有人可以提供帮助,我将不胜感激。

我已经写了一些代码,但是我不明白我应该怎么做。

public static double times( double c, double [] v)

int i =0;
for( i =0; i < v .length; i++){
myArray =(c * v[i]);
    i++;
}

}

public class Main {

    public static void main(String[] args) {

    double [] v={5.1,5.2,3.0,4.0};
    double c= 4.1;

    System.out.println(times(v,c));

4 个答案:

答案 0 :(得分:1)

这是一个好的开始,但是您的方法应该返回一个双精度数组:double[]

public static double[] times( double c, double [] v)
  double[] myArray = new double[v.length]; // this is a new array
  int i =0;
  for( i =0; i < v .length; i++){
    myArray[i] =(c * v[i]); // assign new values to your array
    //  i++; << don’t need this line as your for loop is already incrementing i
  }
  return myArray;
}

答案 1 :(得分:0)

上面提到的答案是正确的,但您可以在同一数组中执行相同的操作,即double [] v,而不必为优化方案而创建新数组

答案 2 :(得分:0)

仔细阅读您的问题。

我在代码中添加了注释,以便您了解您做错了什么:

  // Return a double[] instead of double
  public static double[] times( double c, double [] v)

    // Create a new double array
    double[] myArray = new double[v.length];
    for (int i = 0; i < v.length; i++) {
      // Set each element of the new array equals to the old array element in 
      // The same position multiplied by c
      myArray[i] = c * v[i];   // Parenthesis are not needed here
      // i++ is not needed because you already add 1 to i in the for instruction
    }

    // Return the new array
    return myArray;
 }

答案 3 :(得分:0)

还要小心打印。我相信您要打印新值而不是数组引用。

public static void main(String[] args) {
        double[] v = {5.1, 5.2, 3.0, 4.0};
        double c = 4.1;
        double[] newV = times(c, v);

        System.out.print("Array address: ");
        System.out.println(newV);
        System.out.print("Array as string: ");
        System.out.println(Arrays.toString(newV));
        System.out.print("Array values for: ");
        for (int index = 0; index < newV.length; ++index) {
            System.out.println(newV[index]);
        }
        System.out.print("Array values foreach: ");
        for (double value : newV) {
            System.out.println(value);
        }
}