java求数组每行的和 用的另一种方法但总是答案不对 求助!

题目描述

输入2个正整数m和n(1≤m≤6,1≤n≤6),然后输入矩阵a(m行n列)中元素,分别计算并输出各行元素之和。

输入

第一行输入两个整数m,n。

随后输入m*n个整数,存入一个m行n列的数组中。

输出

计算并输出矩阵中每行的和。

样例输入 Copy

3 3

1 2 3

4 5 6

7 8 9

样例输出 Copy

6

15

24

import java.util.Scanner;
import java.util.Arrays;
public class Main {
    public static void main(String[]args) {
        Scanner sc = new Scanner(System.in);
        int m =sc.nextInt();
        int n =sc.nextInt();
        int arr[][]=new int[m] [n];
        for(int i=0;i<m;i++) {
            for(int j=0;j<n;j++) {
                arr[i][j]=sc.nextInt();
                arr[i][0]+=arr[i][j];
            }
        }       
        for(int i=0;i<m;i++)
             System.out.println(arr[i][0]);

        }
    }

为什么我输出的7 19 31 每次都多加了每行第一个数据 如何减掉第一个数据啊

自己想嘛,每次j==0的时候, arr[i][j]=sc.nextInt();在这里取每行的第一个数,然后执行arr[i][0]+=arr[i][j];那不就是自己加自己,所以多加了一个arr[i][0]的值,
你可以
for(int i=0;i for(int j=0;j arr[i][j]=sc.nextInt();
if(j>0){
arr[i][0]+=arr[i][j];
}
}
}

累加的时候重新定义一个数组变量,不要用 a[i][0] 。

import java.util.Scanner;
import java.util.Arrays;
public class Main {
    public static void main(String[]args) {
        Scanner sc = new Scanner(System.in);
        int m =sc.nextInt();
        int n =sc.nextInt();
        int arr[][]=new int[m] [n];
                int sum[] new int[m];
        for(int i=0;i<m;i++) {
            for(int j=0;j<n;j++) {
                arr[i][j]=sc.nextInt();
                sum[i]+=arr[i][j];
            }
        }       
        for(int i=0;i<m;i++)
             System.out.println(sum[i]);

        }
    }

arr[i][0]+=arr[i][j];
当j=0时,就多加了第一个值