如何在数组中交换两个整数,其中我的方法采用两个整数和一个来自main的数组?
我在main中调用我的swap方法,但它不会改变任何东西。 我究竟做错了什么?
public static void main(String[] args){ int mainArr[] = new int[20]; for(int i = 0; i<mainArr.length; i++){ swapper(3, 14, mainArr); System.out.print(i + mainArr[i] + " "); } } public static void swapper (int a, int b, int[] mainArr){ int t = mainArr[a]; mainArr[a] = mainArr[b]; mainArr[b] = t; }
我的代码产生了
0, 1, 2, 3,...19
以正常的升序,我希望它交换第4和第15个元素。
移动方法调用: –
swapper(3, 14, mainArr);
在你的for循环之外。 因为,如果你的循环运行even
数次,它不会影响数组。
此外,在实际交换元素之前,需要先初始化数组。 在调用swapper
之前需要做的事情。
for(int i = 0; i
编写代码如下:
int mainArr[] = new int[20]; for(int i =0; i
将解决这个问题。 问题是你碰巧调用了偶数次,所以它总是没有效果。
您调用swapper的次数与数组中的元素相同。
- 如果数组具有偶数长度,则不会发生任何变化
- 如果数组具有奇数长度,则它将改变
public class swapInt { public static void main(String args[]) { swap(new int[]{2,3,5,6,8},1,3); } public static void swap(int[]a,int i,int j) { int temp=a[i]; a[i]= a[j]; a[j]=temp; for(int b=0;b