#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 спасибо!!!, я сперато в очередную петлю на сумму