【发布时间】:2014-04-08 20:58:06
【问题描述】:
public static void shiftLeft(int[][] array,int num, int rowSel) {
int m = array[rowSel].length;
int temp = array[rowSel][0];
for (int k=0; k<m-num; k++){
array[rowSel][k] = array[rowSel][k+num];
}
array[rowSel][m-num] = temp;
System.out.println("Final array: ");
for(int i = 0; i<array.length; i++){
for(int j=0;j<array.length;j++){
System.out.printf("%4d",array[i][j]);
}
System.out.println();
}
}
示例输出
Enter number of rows:
4
Enter number of columns:
4
ArrayA
12 12 10 14
18 5 2 0
16 1 2 2
17 15 6 15
Which row [0..3] do you want to shift to the left?
2
How many times?
3
Final array:
12 12 10 14
18 5 2 0
2 16 2 2
17 15 6 15
注意第 3 行将 1 更改为 2
【问题讨论】:
-
尝试调用 shiftLeft(array, 1, rowSel) num 次 - 这行得通吗?如果是这样,那么您的逻辑有问题,
num> 1。 -
它最终将其移至正确的编辑:哎呀。我看错了。是的,当更改为 1 时它确实有效