java学习——25.二维数组

如果数组元素又是数组,则称为多维数组,常用的是二维数组。

二维数组可以看成由两个一维数组组成,所以很多东西与一维数组类似,如其声明的方法、可进行的运算等等。

1、声明二维数组

数组类型数组名【】【】;

用[][]表示二维数组。

例:int a[][];

a=newint[4][5];//用new关键申请存储空间

上两行可以合并成一行:

int a=new int[4][5];

2、赋初值

声明时可以赋初值,将值和多层花括号括起来,如:

int a[][]={{1,2,3},{4,5,6}}

3、下标

二维数组常被用在行列式中,每个元素用2个下标表示,如:a[i][j]为第i行第j列。

行、列均从0开始,同样要注意均不能越界。

例:奇数阶幻方

n阶幻方是指将自然数1~n*n排列成n*n阶方阵,其各行、各列及各对角线上的数字之和相等。

连续摆数法(也称暹罗法)适用于构造奇数阶幻方。

其构造规律如下:

(1)      初始位置为第0行中间,放置1.

(2)      向当前位置的右上方顺序放置下一个数;将幻方阵沿行、列方向看成环形。

(3)      若当前位置放置数为n的倍数,即一条对角线已满,则下一个数的位置是本列的下一行。

其完整代码如下:

import java.util.*;

public classhuanfang {

public static void main(String args[]){

Scannersc=newScanner(System.in);

System.out.print("请输入阶数:");

int n=sc.nextInt();

int mat[][]=newint[n][n];//用二维数组mat来存储幻方

int i=0,j=n/2;//i为行,j为列, 初始位置为mat[0][n/2]

for(int k=1;k<=n*n;k++)//计算各行列的值

{

mat[i][j]=k;//放置第一个数

if(k%n==0)//如果对角线已满

i=(i+1)%n;//下一位置下一行

else

{

i=(i-1+n)%n;//向上一行

j=(j+1)%n;//向右一行

}

}

for(int m=0;m<n;m++){//输出二维数组

for(int l=0;l<n;l++)

System.out.print(mat[m][l]+" \t");

System.out.println();

}

}

}

其运行结果如下:

(1)  当n输入3时,输出:

(2)  当n输入5时,输出:

(3)      当n输入7时,输出:

(0)

相关推荐

  • 数组

    原文链接http://zhhll.icu/2021/01/18/java%E5%9F%BA%E7%A1%80/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/java%E5% ...

  • VB中怎样对一个二维数组的行进行操作

    通常,数学上的行列式或者矩阵,用二维数组来存放数据,二维数组的第1维,就是映射矩阵的行,二维数组的第2维,就是映射矩阵的列. 例如: dim d(1 To 3,1 To 4) As Integer 对 ...

  • 如何将二维数组作为函数的参数传递

    今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不 ...

  • c++指针数组与二维数组的最大区别

    下面随笔是关于指针数组说明及与二维数组的最大区别. 指针数组 数组的元素是指针型 例 利用指针数组存放矩阵 1 #include 2 using namespace std; 3 int main() ...

  • 动态内存分配连续内存空间的二维数组

    可以直接使用一维数组来模拟二维数组,下面的代码就是在此基础上,用一个二级指针指向一维数组的相应地方,详见代码 #include <stdio.h> #include <malloc. ...

  • 假设客车的座位数是9行4列,使用二维数组在控制台应用程序中实现简单的客车售票系统。

    具体要求为: 使用一个二维数组记录客车售票系统中的所有座位号,并在每个座位号上都显示有票,然后用户输入一个坐标位置,按Enter键,即可将该座位号显示为已售. 首先我定义的输入格式为:1,2 个人认为 ...

  • 二维数组

    如果数组元素又是数组,则称为多维数组,常用的是二维数组. 二维数组可以看成由两个一维数组组成,所以很多东西与一维数组类似,如其声明的方法.可进行的运算等等. 1.声明二维数组 数组类型数组名[][]: ...

  • 表格转换,用函数做就是很难!(二维数组的万金油)

    小伙伴们好啊,今天又要分享一个表格转换的问题.其实用函数处理表格转换的问题,确实不是一个好的选择,因为会比较复杂.用pq处理表格转换的问题就比较容易.但是我现在只能分享函数的用法,因为pq我也只会一点 ...

  • 万金油公式在二维数组中的应用

    今天和小伙伴们学习下万金油公式在二维数组中的应用.对于万金油公式,相信常用excel函数的同学都很了解,我这里把它叫做筛选公式.如果不了解,也没有关系,可以慢慢积累. -01- 表格转换 1.将左表转 ...

  • 数组运算5(一维数组与二维数组的运算)

    之前我们说了一维数组与一维数组的运算,二维数组与二维数组的运算,今天来说一维数组与二维数组的运算. -01- 运算规则 1.行数或列数相同的一维数组与二维数组的运算 如下图所示,是一维区域与二维区域的 ...