java中数组反转代码 java数组反向

请教java数组反转交换问题

import java.util.*;

成都创新互联公司自2013年起,先为高邮等服务建站,高邮等地企业,进行企业商务咨询服务。为高邮企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

class Test_15 {

public static void main(String[] args) {

int[] arr = {

10, 20, 30, 40, 50

};

System.out.println("遍历得到数组:" + Arrays.toString(arr));

System.out.print("------------- \n");

for (int i = 0; i arr.length/2; i++) {

int tmp = arr[i];

arr[i] = arr[arr.length - 1 - i];

arr[arr.length - 1 - i] = tmp;

}

System.out.println("反转后的数组:" + Arrays.toString(arr)); // 交换数组后的数组

}

}

java数组反转及可变长度问题

应该是你太想当然了。前后交换是没错,但是你循环次数有误。应该是循环 (arr.length+1)/2 ,当然后面的交换赋值也要改

java 反转数组

import java.util.*;

public class TurnChessboard

{

static void printArray(int[][] s)

{

for(int[] i:s)

{

for(int j:i)

System.out.printf("%2d",j);

System.out.println("");

}

}

static int turn(int i)

{

if(i==0)

return 1;

else

return 0;

}

public static void main(String[] args)

{

Scanner in=new Scanner(System.in);

int m,n;

System.out.println("请输入行数和列数(必须是奇数):");

m=in.nextInt();

n=in.nextInt();

while(m%2==0||n%2==0)

{

System.out.println("非法的输入!请重试:");

m=in.nextInt();

n=in.nextInt();

}

int[][] cbd=new int[m][n];

int[] role=new int[m];

int[] cole=new int[n];

int count=0,tempcount=0;

int i,j;

System.out.printf("请输入一个%d*%d棋盘:\n",m,n);

for(i=0;im;i++)

for(j=0;jn;j++)

cbd[i][j]=in.nextInt();

if(m=n)

{

for(i=0;im;i++)

for(j=0;jn;j++)

role[i]+=cbd[i][j];

for(i=0;im;i++)

if(role[i]%2==1)

{

for(j=0;jn;j++)

cbd[i][j]=turn(cbd[i][j]);

count++;

System.out.printf("第%d次翻转后的棋盘(变换第%d行):\n",count,i+1);

printArray(cbd);

}

for(j=0;jn;j++)

for(i=0;im;i++)

cole[j]+=cbd[i][j];

for(int t1:cole)

if(t1%2==1)

tempcount++;

if(tempcount%2==0)

{

for(j=0;jn;j++)

if(cole[j]%2==1)

{

for(i=0;im;i++)

cbd[i][j]=turn(cbd[i][j]);

count++;

System.out.printf("第%d次翻转后的棋盘(变换第%d列):\n",count,j+1);

printArray(cbd);

}

System.out.printf("\n需要进行%d次翻转\n",count);

}

else

System.out.printf("\n不能通过有限的反转使行或列的1的个数为偶数!\n");

}

else

{

for(j=0;jn;j++)

for(i=0;im;i++)

cole[j]+=cbd[i][j];

for(j=0;jn;j++)

if(cole[j]%2==1)

{

for(i=0;im;i++)

cbd[i][j]=turn(cbd[i][j]);

count++;

System.out.printf("第%d次翻转后的棋盘(变换第%d列):\n",count,j+1);

printArray(cbd);

}

for(i=0;im;i++)

for(j=0;jn;j++)

role[i]+=cbd[i][j];

for(int t2:role)

if(t2%2==1)

tempcount++;

if(tempcount%2==0)

{

for(i=0;im;i++)

if(role[i]%2==1)

{

for(j=0;jn;j++)

cbd[i][j]=turn(cbd[i][j]);

count++;

System.out.printf("第%d次翻转后的棋盘(变换第%d行):\n",count,i+1);

printArray(cbd);

}

System.out.printf("\n需要进行%d次翻转\n",count);

}

else

System.out.printf("\n不能通过有限的翻转使行或列的1的个数为偶数!\n");

}

}

}

呀,真麻烦,本来以为一会就能写出来呢

java怎么反转数组比如说rt[1,2,3]要变成r[3,2,1]

直接循环一下不就好了。

int rt[]={1,2,3}; //定义数组

int r[]=new int[rt.length]; //定义一个和要转换数组同长度的数组

for(int i=0;irt.length;i++){

r[rt.length-1-i]=rt[i]; //从最后向前填充r数组

}

r就是你要的反转数组了。


分享标题:java中数组反转代码 java数组反向
网页网址:http://ybzwz.com/article/dopdeos.html