所以我想弄清楚如何用第j列交换第i行。我到处搜索,仍然无法找到类似于我正在寻找的解决方案。 (几乎用第二列切换第一行)我假设我将不得不创建一个临时值来保存值然后交换它,但我只能用另一行或列交换另一行或列柱。在这一点上,我完全迷失了。任何建议将不胜感激。
为了更好地澄清它可能是什么样子
输入:
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 :(得分:0)
我发现这有效,看看它是否适合你...
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();
}
}
}