打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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时,输出:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C,C 指针数组与数组指针
599,统计全 1 子矩形
N皇后问题的两个最高效的算法
C语言实现魔方阵
输出魔方阵。魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等。
OpenCV参考手册之Mat类详解(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服