0

我不明白为什么在编译代码时会出现这些错误。

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

错误:F:\G\programA: 运算符 - 不能应用于双精度、双精度 []

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

4 回答 4

3
2 *length

您将数组乘以 int。不会发生。围绕它的代码有些不清楚,但是由于您尝试设置单个数组元素,因此您需要获取 的单个元素length,例如 bylength[0]length[someIntInRange]

另外,location [x][y]应该是loc[x][y]因为没有称为位置的字段。

于 2013-09-17T21:12:18.320 回答
1

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

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

不能在数组和数字之间进行数学运算。

于 2013-09-17T21:17:10.753 回答
0

您的问题是这里的未定义操作...

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

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

于 2013-09-17T21:14:00.283 回答
0

我不明白为什么在编译代码时会出现这些错误。

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

错误:F:\G\programA: 运算符 - 不能应用于双精度、双精度 []

您正在尝试将 aint和之后的 adouble与type的数组double相乘。这是不可能的。如果要与数组中的所有值相乘,则需要对其进行迭代。

于 2013-09-17T21:13:10.410 回答