二维数组求和 练习

178 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天,点击查看活动详情

二维数组:数组的初始化方式总共有三种:静态初始化、动态初始化、默认初始化

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外伐颂都是零元素。

二维数组:[][]

静态初始化
除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。

eg:

int[][] arr = {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
int[][] arr =new int[][] {{1,2},{4,5,6},{4,5,6,7,8,9,9}};

动态初始化
数组定义与为数组元素分配空间并赋值的操作分开进行。
eg:
int[][] arr = new int[3][]; //本质上定义了一维数组长度为3,每个“格子”中放入的是一个数组

arr[0] = {1,2};
arr[1] = {3,4,5,6};
arr[2] = {34,45,56};

描述
给定一个二维数组,请你编写一个求和函数,计算出这个数组元素的和

输出描述:
输出二维数组元素的和


    public static void main(String[] args) {
        int[][]  arr = {{11,33,50},{22,44,66,88},{131,214,315,146},{928,827,726,625},{424,525}};
       //方法体1  二维数组
        int sum=add(arr);
        System.out.println(sum);
        //方法体2  单数组
        int[]  arr1 = {5,10,5,10,5,5};
        int sum1=add1(arr1);
        System.out.println(sum1);
    }

    //利用for 循环迭代进行 相加的操作

    private static int add1(int[] arr1) {

        int sum=0;

        for(int i=0;i<arr1.length;i++){
                sum=sum+arr1[i];

        }
        return sum;


}

    public static int add(int[][] arr) {
        int sum=0;

        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
                sum=sum+arr[i][j];
            }
        }
        return sum;
    }

运行结果

5175
40

扩展资料:

数组(Array)是有序的元素序列。 [1]  若将有限个类型相同的变量的[集合]命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为[下标变量]。用于区分数组的各个元素的数字编号称为下标。数组是在[程序设计]中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 [1]  这些有序排列的同类数据元素的集合称为数组。

数组是用于储存多个相同类型数据的集合。

二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一王畜囊个元素,即二维数组的行下标注欠从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t

按“列优先顺序”存储时,地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t

存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节。