2013-12-06 2 views
-2

Итак, я пытаюсь понять, как заменить i-ю строку на j-ю колонку. Я искал везде и все еще не могу найти решение, подобное тому, что им нужно. (Довольно сильно переключая первую строку со вторым столбцом). Я предполагаю, что мне нужно создать временную точку для хранения значения, а затем поменять ее, но я могу сделать это только для замены строки с другой строкой или столбцом с другой колонка. На данный момент я просто полностью потерян. Мы ценим любые предложения.Переключение строк со столбцами в 2D-массиве

, что это может выглядеть для лучшего осветления

Вход:

2 3 4 
1 2 3 
4 5 6 

Выход:

 3 2 5 
    1 3 3 
    4 4 6 

Код:

private int n; 

private int [][] Matrix = new int[n][n]; 

public void switchRowColumn(int i, int j) 

{ 

    for(int i=0; i< Matrix.length; i++) 

{ 

ответ

0

Я нашел это работает, увидеть, если он работает f или вы ...

public class Swap{ 

public static void main(String[]args){ 
    int [][] array = { 
      {2,3,4}, 
      {1,2,3}, 
      {4,5,6} 
      }; 

    swap(array, 0 , 1); 
} 
public static void swap (int [][] array, int row, int col){ 
    int [] temprow = new int [array[0].length]; 
    int [] tempcol = new int [array.length]; 
    for (int i = 0; i < array.length; i++) { 
     for (int j = 0; j < array[0].length; j++) { 
      if(i == row){ 
       temprow = array[i]; // TEMP ROW 
      } 
     } 
    } 

    for (int i = 0; i < array.length; i++) { 
     for (int j = 0; j < array[0].length; j++) { 
      if(j == col){ 
       tempcol[i] = array[i][j]; 
      } 
     } 
    } 
    for (int i = 0; i < tempcol.length; i++) { 
     System.out.print(tempcol[i]); /// COLS 
    } 

    for (int i = 0; i < array.length; i++) { 
     for (int j = 0; j < array.length; j++) { 
      if(i == row){ 
       array[i] = tempcol; 
      } 
     } 
    } 


    for (int i = 0; i < array.length; i++) { 
     for (int j = 0; j < array[0].length; j++) { 
      if(j == col){ 
       array[i][j] = temprow[i]; 
      } 
     } 
    } 

    System.out.println(); 

    for (int i = 0; i < array.length; i++) { 
     for (int j = 0; j < array[0].length; j++) { 
      System.out.print(array[i][j]+" "); 
     } 
     System.out.println(); 
    } 
} 

}

Смежные вопросы