#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. Прочитайте это, а затем посмотрите, что еще может предложить класс, который уже предоставляет
2. Хорошо, я не понимаю, что делать, это то, что row в настоящее время содержит обе строки в массиве, следовательно, почему он печатает обе строки вместе, я не знаю, как сделать две строки их собственными переменными, чтобы я мог распечатать их по отдельности, я программирую всего год, поэтому у меня пока нет четкого понимания.
3. «эта строка в настоящее время содержит обе строки в массиве, следовательно, почему она печатает обе строки вместе» . Это неверно. Проблема заключается в вашем использовании
Ответ №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));
}