Есть ли способ форматировать вывод массива при выполнении арифметических операций с многомерными массивами

#java #multidimensional-array

#java #многомерный массив

Вопрос:

Я пишу программу для нахождения суммы всех строк в массиве, но когда мой учитель проверил это, математика верна, но вывод плохо отформатирован. Если бы у меня был такой массив: {2, 1}, {1, 1} мой код выводит 32. Как мне заставить его выводить 3 и 2 отдельно?

  public static void main(String [] args) {
      int [][] t ={ {1, 2}, {1, 1} };
      int[] sums = new int[t.length];
      int i = 0;

for (int[] row : t) {
    sums[i  ] = sumArray(row);

    System.out.print(sumArray(row));
    }
}

public static int sumArray(int[] m) {

      int sum = 0;
        for (int number : m) {
            sum = sum   number;
        }
        return sum;
}
  

Я также обязан не использовать никаких арифметических операторов.

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

1. Что ж, тогда используйте другой способ вывода ваших результатов на консоль. Вы используете только один метод для печати, и у этого есть подробное описание JavaDoc. Прочитайте это, а затем посмотрите, что еще может предложить класс, который уже предоставляет print .

2. Хорошо, я не понимаю, что делать, это то, что row в настоящее время содержит обе строки в массиве, следовательно, почему он печатает обе строки вместе, я не знаю, как сделать две строки их собственными переменными, чтобы я мог распечатать их по отдельности, я программирую всего год, поэтому у меня пока нет четкого понимания.

3. «эта строка в настоящее время содержит обе строки в массиве, следовательно, почему она печатает обе строки вместе» . Это неверно. Проблема заключается в вашем использовании print .

Ответ №1:

Прочитайте о разнице между print() и println() . Попробуйте что-то вроде приведенного ниже и выберите тот, который соответствует вашим потребностям:

1)

 for (int[] row : t) {
    sums[i  ] = sumArray(row);
    System.out.print(sumArray(row)   " ");
}
  

2)

 for (int[] row : t) {
    sums[i  ] = sumArray(row);
    System.out.print(sumArray(row)   ", ");
}
  

3)

 for (int[] row : t) {
    sums[i  ] = sumArray(row);
    System.out.println(sumArray(row));
}
  

4)

 for (int[] row : t) {
    sums[i  ] = sumArray(row);
    System.out.print(Arrays.toString(row));
    System.out.print(" = ");
    System.out.println(sumArray(row));
}