黑马程序员技术交流社区
标题:
二维数组题目求解
[打印本页]
作者:
谷文仁
时间:
2013-4-2 16:30
标题:
二维数组题目求解
本帖最后由 谷文仁 于 2013-4-2 21:39 编辑
把数组前面的二维数组替换成后面的数组求方法
1 2 3
4 5 6
7 8 9
换为
1 4 7
2 5 8
3 6 9
image036.jpg
(9.83 KB, 下载次数: 6)
下载附件
2013-4-2 16:28 上传
前面替换成后面的
作者:
飞天小猪猪
时间:
2013-4-2 16:51
思想就是看角标
newarr[0][0]=arr[0][0] ----->1
newarr[0][1]=arr[1][0] ----->4
newarr[0][2]=arr[2][0] ----->7
newarr[1][0]=arr[0][1] ----->2
正好是新数组的角标和旧数组角标一维和二维换了个位置。
代码就出来了 如下:
class ArrayTest4
{
public static void main(String[] args)
{
int[][] arr={{1,2,3},{4,5,6},{7,8,9}};
int[][] newArr=new int[3][3];
for(int x=0;x<3;x++)
{
for (int y=0;y<3;y++ )
{
newArr[x][y] =arr[y][x];
}
}
for(int x=0;x<3;x++)
{
for (int y=0;y<3;y++ )
{
System.out.print(newArr[x][y]);
}
System.out.println();
}
}
}
复制代码
作者:
陆旭东
时间:
2013-4-2 16:58
你的意思是要让数组旋转吗?
public static void change(int[][] array,int n){
int temp;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
temp=array[i][j];
array[i][j]=array[j][i];
array[j][i]=temp;
}
}
}
复制代码
作者:
奋斗2013
时间:
2013-4-2 17:17
public class Tihuan {
/**
* @param args
*/
public static void main(String[] args) {
int may[][]={{1,2,3},{4,5,6},{7,8,9}};
for(int i=0;i<may.length;i++){
for(int j=0;j<may[i].length;j++){
System.out.print(may[i][j]);
}
System.out.println();
}
}
}
以上创建类Tihuan。创建并初始化数组may。输出结果为
1 2 3
4 5 6
7 8 9
将上面的)System.out.print(may[i][j]);改为System.out.print(may[j][i]);输出结果:
1 4 7
2 5 8
3 6 9
作者:
庞立森
时间:
2013-4-2 17:26
其实二维数组和一维没有什么太大的区别,也是根据
角标找元素,只不过是原来只用一个数字表示角标,现在
换成俩个数字表示而已,其实就和你看地图坐标意思差不多
class ArrayDemo
{
public static void main(String[] args)
{
int[][] a={{1,2,3},{4,5,6},{7,8,9}};
int[][] abc=new int[3][3];//定义一个有三个一维数组的二维数组,
//且每个数组长度为3
/*开始交换,原理就是a数组的a[0][0]角标赋值给abc[0][0],
a[0][2]赋值给abc[2][0],a[1][0]赋值给abc[0][1]
因此可以看出有俩个for循环就可以搞定
for(int z=0;z<3;z++)
{
for (int i=0;i<3;i++ )
{
abc[z][i] =a[i][z];
}
}
//遍历输出
for(int z=0;z<3;z++)
{
for (int i=0;i<3;i++ )
{
System.out.print(newArr[z][i]);
}
System.out.println();
}
}
}
作者:
张源锋
时间:
2013-4-2 19:34
public static void main(String args[]){
int arr[][] =new int[][]{{1,2,3},{4,5,6},{7,8,9}};
//int a1[][] = new int[3][3];
int a1[][] = new int[arr.length][];//把转换好的数据放到这数组里
a1[0] = new int[arr[0].length];
a1[1] = new int[arr[1].length];
a1[2] = new int[arr[2].length];
for(int i=0;i<arr.length;i++){
for(int j = 0;j<arr[i].length;j++){
int m = arr[i][j];
a1[j][i]=m;//交换位置只要把里面的i j换一下就可以了
}
}
//便历
for(int i=0;i<a1.length;i++){
for(int j = 0;j<a1[i].length;j++){
int m = a1[i][j];
System.out.print(""+m+" ");
}
System.out.println();
}
}
复制代码
作者:
王川
时间:
2013-4-2 20:53
数学上的转置
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2