@Koshkasobaka

Как поменять местами строки со столбцами в матрице Java?

Здравствуйте, не получается написать алгоритм, который бы менял местами строки и столбцы в двумерном массиве. Помогите, пожалуйста. Пока удалось только поменять первую строку с первым столбцом:
for (int i = 0; i < array.length; i++) {
                int j = 0;
                int box = board[i][j];
                board[i][j] = board[j][i];
                board[j][i] = box;
                j++;
            }
  • Вопрос задан
  • 3526 просмотров
Пригласить эксперта
Ответы на вопрос 3
@fapsi
Безработный
Для начала объявить и инициализировать новый массив, где количество строк равно количеству элементов (столбцов) в строке первоначального массива, а количество элементов (столбцов), соответственно, количеству строк (проверка входного массива на null и прочее на Ваше усмотрение).
int[][] board = new int[array[0].length][array.length]


Ну а далее этот массив заполнить
private int[][] rotateArray(int[][] array) {
	int[][] board = new int[array[0].length][array.length]
	
	for(int i=0; i<array.length; i++) {
		for(int j=0; j<array[i].length; j++) {
			board[j][i] = array[i][j];
		}
	}
	
	return board;
}
Ответ написан
@TAZAQ
Не знаком с Java, но у вас постоянно j обнуляется и выше 1 не идёт, сделайте в 2 цикла
Ответ написан
@Sokol911
В С# решение простое:
// массив a[i,z] создан ранее, размер квадратного массива n, n
Console.WriteLine ("Исходный массив");
for(i = 0; i < n; i++)
{
for(z=0; z < n; z++)
{
Console.Write("{0,4:d}" , a[i, z]);
}
Console.WriteLine( );
}
//Меняем местами строки и столбцы
for (i = 0; i < n; i++)
{
for ( z = 0; z < 0; z++)
{
Console.Write("{0,4:d}", a[z, i]);
}
Console.WriteLine( );
}
Console.ReadKey( );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы