Java多维数组程序麻烦

时间:2013-09-17 21:09:57

标签: java arrays multidimensional-array compiler-errors

我不明白为什么我在编译代码时遇到这些错误。

错误:F:\ G \ programA:operator *不能应用于int,double []

错误:F:\ G \ programA:operator - 不能应用于double,double []

import java.io.*;

public class programA
{
  public static void main (String [] args) throws IOException
  {
    BufferedReader myInput = new BufferedReader (new InputStreamReader (System.in));

  int points = 100, dimension = 3;

  double [] length;
  length = new double [dimension];

  double [][] loc;
  loc = new double [points][dimension];

   for (int x = 0; x < points; x++){
  for (int y = 0; y < dimension; y++){
   location [x][y]= (Math.random() * (2 *length)) - length;
  }
  }

  }
}

4 个答案:

答案 0 :(得分:3)

2 *length

您将数组乘以int。不会发生。围绕它的代码有点不清楚,但是因为你试图设置一个数组元素,你需要获得length的单个元素,例如length[0]length[someIntInRange]

此外,location [x][y]应为loc[x][y],因为没有名为location的字段。

答案 1 :(得分:1)

由于代码不清楚,我假设你需要

loc [x][y]= (Math.random() * (2 *length[y])) - length[y];

无法在数组和数字之间进行数学运算。

答案 2 :(得分:0)

  

我不明白为什么我在编译时遇到这些错误   代码。

     

错误:F:\ G \ programA:operator *不能应用于int,double []

     

错误:F:\ G \ programA:operator - 不能应用于double,double []

您正尝试将int及更高版本doubledouble类型的 数组 相乘。这是不可能的。如果要与数组中的所有值相乘,则需要对其进行迭代才能执行此操作。

答案 3 :(得分:0)

你的问题是一个未定义的操作......

double [] length;
length = new double [dimension];
...
(2 *length)

您需要从长度数组中选择一个值。