Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:二进制运算符“+”的操作数类型错误_Java - Fatal编程技术网

Java 错误:二进制运算符“+”的操作数类型错误

Java 错误:二进制运算符“+”的操作数类型错误,java,Java,我在下面的代码中得到一个错误,它表示错误:二进制运算符“+”的操作数类型错误。错误出现在sum+=arr[i]行 这段代码是计算整数矩阵对角差的 import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) {

我在下面的代码中得到一个错误,它表示错误:二进制运算符“+”的操作数类型错误。错误出现在sum+=arr[i]行 这段代码是计算整数矩阵对角差的

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int a[][] = new int[n][n];
        for(int a_i=0; a_i < n; a_i++){
            for(int a_j=0; a_j < n; a_j++){
                a[a_i][a_j] = in.nextInt();
            }
        }
        Solution solution= new Solution();
        solution.diagonalDifference(a,n);
    }
    public void diagonalDifference(int arr[][],int n){
        int sum=0,sum1=0,sum2=0;
        for(int i=0; i < n;i++){
            for(int j=0; j < n;j++){
                if(i==j){
                    sum1+=arr[i];//calculating sum of primary diagonal
                }
            }
        }
        for(int i=0; i < n;i++){
            for(int j=n; j >0;j--){
                 sum2+=arr[i];//calculating sum of secondary diagonal
            }
        }
        sum=Math.abs(sum1-sum2);
        System.out.println(sum);
    }
}
arr[i]是一个数组,而不是int

改变

sum+=arr[i];

您可能还希望更改计算次对角线的第二个循环的范围:

    for(int i = 0; i < n; i++) {
        for(int j = n - 1; j >= 0; j--) {
             sum += arr[i][j]; //calculating sum of secondary diagonal
        }
    }
sum+=arr[i][j];
    for(int i = 0; i < n; i++) {
        for(int j = n - 1; j >= 0; j--) {
             sum += arr[i][j]; //calculating sum of secondary diagonal
        }
    }