题目描述
输入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时,就多加了第一个值