Сумма столбца в 2D массиве, Java

#java #for-loop #sum #calculated-columns

Вопрос:

Я пытался суммировать каждый столбец, но мне не удалось получить ожидаемый результат, как вы можете видеть, я беру элемент этого 2d-массива как обычно(строка и столбец), но для цикла For я сначала зацикливаю столбец, а затем зацикливаю строку.

вход;

 3 4 1 2 3 4 4 5 6 5 7 8 9 5  

ожидаемый выход;

 12 15 18 14  

мой вывод;

 6 13 18 22  

мой код;

 import java.util.Scanner;  public class exercise2_2darray {  public static void main(String[] args) {    Scanner sc=new Scanner(System.in);   int m = sc.nextInt(); //take input row   int n = sc.nextInt(); //take input col   int array[][] = new int[m][n];     for(int col =0; collt;n; col  ) {   int Sum = 0;     for (int row=0;rowlt;m; row  ) {    array[row][col] = sc.nextInt();   Sum =array[row][col];   }   System.out.println(Sum);   }   }  }  

правильный ответ состоит в том, чтобы разделить пользовательский ввод для цикла и цикл суммирования массива;

 import java.util.Scanner; public class exercise2_2darray {  public static void main(String[] args) {    Scanner sc=new Scanner(System.in);   int m = sc.nextInt(); //take input row   int n = sc.nextInt(); //take input col   int array[][] = new int[m][n];     for(int row =0; rowlt;m; row  ) {     for (int col=0;collt;n; col  ) {    array[row][col] = sc.nextInt();   }   }    for(int col =0; collt;n; col  ) {   int Sum = 0;     for (int row=0;rowlt;m; row  ) {    Sum =array[row][col];   }   System.out.println(Sum);   }     } }  

Ответ №1:

То, как вы вводите данные, неверно. У вас есть строка и столбец переключения, в результате чего ваш ввод будет выглядеть следующим образом.

 1 4 6 8 2 4 5 9 3 5 7 5  

и сумма будет

 6 13 18 22  

Либо вам придется изменить способ ввода

 1 4 7 2 5 8 3 6 9 4 5 5  

или переключите строку и столбец обратно в обычное состояние(строка как внешний цикл и столбец как внутренний цикл) для ввода и выполнения sum отдельно в другом цикле

 for(int row=0; rowlt;r; row  ) {  for(int col=0; collt;n; col  ) {  ....// take input  } } for(int row=0; rowlt;r; row  ) {  int sum=0;  for(int col=0; collt;n; col  ) {  Sum =array[row][col];  }  System.out.println(Sum); }  

Комментарии:

1. wahhhhhh спасибо!!!, я сперато в очередную петлю на сумму