【问题标题】:Bad operand type for Binary operator "*"二元运算符“*”的操作数类型错误
【发布时间】:2014-07-18 14:27:42
【问题描述】:

二元运算符“*”的操作数类型错误

我在编译期间收到错误,因为二元运算符的操作数类型错误:第一种类型:int 第二种类型:int[],我只能使用此逻辑。以下是我的程序的一部分

public static int pmean(int[] ar){
    int[][] a = new int[ar.length][ar.length];
    int k=0;
    int min=0;
    int sum=0;
    for(int i=0;i<ar.length;i++){
        k=i+1;
        for(int j=0;j<ar.length;j++){
            a[i][j]= (k * a[j]);//error at this line
            k++;
            if(k==ar.length+1)
                k=1;
        }
    }

【问题讨论】:

  • 你不能像这样在 Java 中将 intint[] 相乘。
  • 有什么方法可以做。这是否意味着我需要相乘的整组整数应该保存在另一个数组中?
  • @Torrtuga - 如您所见,您的编辑已被撤消。如果您解决了问题,那就太好了 - 发布一个解释如何解决问题的答案,然后继续。但是不要将问题的标题和内容都编辑为“回答已解决”——这对任何事情或任何人都没有帮助。

标签: java arrays compiler-errors binary


【解决方案1】:

a[i][j]= (k * a[j]); a[j] 是一个数组,你的意思可能是 a[i][j]

【讨论】:

  • 有什么方法可以做。这是否意味着我需要相乘的整组整数应该保存在另一个数组中?
  • a[i][j]= (k * a[i][j]);替换a[i][j]= (k * a[j]);
  • @torrtuga 您刚刚将代码更改为读取 ar[j]。那将编译。你想做什么?
  • 我编辑了错误行。请参见。它实际上是一个不同的数组 ar[] 乘以 k 并存储在 a[][]
  • @Torrtuga ar[j] 是一个 int,而不是一个 int[],编辑不应该抛出错误。
【解决方案2】:

a 是一个二维数组,所以 a[j] 是一个数组。您不能使用数组进行多个和 int

【讨论】:

    猜你喜欢
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    相关资源
    最近更新 更多