二维数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二维数组相关的知识,希望对你有一定的参考价值。

今天刚刚学习二维数组,有点不懂
比如
int stu[][]=
1,3,2,4,8,7,9,6,
78,89,45,90,79,88,60,58,
89,90,89,45,90,56,77,44,
;
这个是个几行几列的二维数组 ??? 脑袋绕不过来 我只知道如果是stu[3][3],那就是个3行3列的二维数组

3行8列啊
等价于int stu[3][8]
stu[0][0]=1...stu[0][7]=6
stu[1][0]=78..stu[1][7]=58
stu[2][0]=89..stu[2][7]=44
参考技术A stu[][]是不可以这么写的,只能省略第一个维数
stu[][8]
参考技术B 这样写编译都通不过啊 参考技术C 二维数组后面的第一个括号里是行,第二个是列。这种赋值语句你就数一下就好了。 参考技术D

JavaScript数组二维数组及相关练习

数组

数组是一组类型相同的数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。

创建数组

1、使用new创建数组

 var 数组名=new Array()

2、使用字面量创建数组

 var 数组名=[ ]

数组元素的访问

  • 数组的索引从0开始到length-1
  • 数组创建后,都有属性length代表数组的长度(元素个数)
  • 通过循环访问数组元素
var arr =new Array(4)
arr[0]='a'
arr[1]='b'
arr[2]='c'
arr[3]='d'
for(i=0;i<arr.length;i++){
    console.log(arr[i])
}

数组元素的练习

输出下列数组的最大值、最小值

//输出下列数组的最大值、最小值
var num=[51,89,56,34,92]
var max=num[0]
var min=num[0]
for(var i=1;i<num.length;i++) {
    if(max<num[i]){
        max=num[i]
    }
    if (min>num[i]) {
        min=num[i]
    }
}
console.log(max)
console.log(min)

数组中去掉所有的0元素

//数组中除去0
var arr=[2,0,6,1,77,52,9,35,0]
var newArr=[]
for(var i=0;i<arr.length;i++){
    if (arr[i]!=0) {
        newArr[newArr.length]=arr[i]
    }
}
console.log(arr)
console.log(newArr)

数组元素的倒置

//1、利用一个数组倒置
var arr=[23,8,12,45,89,90]
for(var i=0;i<arr.length/2;i++){
    var t=arr[i]
    arr[i]=arr[arr.length-i-1]
    arr[arr.length-i-1]=t
}
console.log(arr)
//2、利用两个数组倒置
var arr=[23,8,12,45,89,90]
var newArr=[]
for(var i=arr.length-1;i>=0;i--){
    newArr[newArr.length]=arr[i]
}
console.log(newArr)
//3、利用while循环倒置
var i=0
var j=arr.length-1
while (i<j) {
    var temp=arr[i]
    arr[i]=arr[j]
    arr[j]=temp
    i++
    j--
}
console.log(arr)

二维数组

通过两个下标(行下标和列下标)来确定一个数组元素

创建二维数组

1、数组名=new Array(new Array() , new Array())
2、数组名=[ [ ] , [ ] ]

二维数组的访问

数组名 [行下标] [列下标]。默认按行优先

//二维数组的打印(字符串输出)
var arr=new Array(
    new Array(23,55),
    new Array(45,65),
    new Array(55,67,89)
)
console.log(arr)
var str=""
for(var i=0;i<arr.length;i++){
    for(var j=0;j<arr[i].length;j++){
        str+=arr[i][j]+"\\t"
    }
    str+="\\n"
}
console.log(str)

二维数组的练习

找出二维数组每一行的最大值

//找出二维数组每一行的最大值
var arr=[
    [44,33,55,22,88],
    [56,53,89,67],
    [32,66,88]
]
for(var m=0;m<arr.length;m++){
    var max=arr[m][0] //假定每一行第一个元素为最大值
    for(var n=1;n<arr[m].length;n++){
        if (max<arr[m][n]) {
            max=arr[m][n]
        }
    }
    console.log("第"+(m+1)+"行的最大值是:"+max)
}

输出二维数组每行、每列、对角线元素之和

// 定义一个i*j的二维数组,存放数值型数据,输出每行、每列、对角线元素之和
var arr=[
    [1,2,3],
    [4,5,6],
    [7,8,9]
]
var sum3=0
var sum4=0
for(var i=0;i<arr.length;i++){
    var sum1=0
    var sum2=0
    for(var j=0;j<arr[i].length;j++){
        sum1+=arr[i][j]
        sum2+=arr[j][i]
        if (i==j) {
            sum3+=arr[i][j]
        }
        if (i+j+1==arr.length) {
            sum4+=arr[i][j]
        }
    }
    //也可用sum4+=arr[i][arr.length-1-i]
    console.log("第"+(i+1)+"行和是"+sum1)
    console.log("第"+(i+1)+"列和是"+sum2)
}
console.log("左上对角线元素和"+sum3)
console.log("右上对角线元素和"+sum4)

二维数组的转置

var arr=[
    [1,2,3],
    [3,4,5],
    [5,6,7],
    [7,8,9]
]
var res=[]
for(var i=0;i<arr[0].length;i++){
    res[i]=[];
    for(var j=0;j<arr.length;j++){
        res[i][j]=arr[j][i]
    }
}
var str=""
for(var i=0;i<res.length;i++){
    for(var j=0;j<res[i].length;j++){
        str+=res[i][j]+"\\t"
    }
    str+="\\n"
}
console.log(str)

让二维数组的每行元素都是 降序 排列

// 让二维数组的每行元素都是 降序 排列
var arr=[
    [1,2,3],
    [4,5,6],
    [7,8,9]
]
var str=""
for(var i=0;i<arr.length;i++){
    for(var j=0;j<arr[i].length;j++){
        str+=arr[i][j]+"\\t"
    }
    str+="\\n"
}
console.log(str)

以上是关于二维数组的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中如何创建一个二维数组,然后给二维数组赋值!

C语言中二维数组行指针是啥

C++二维数组给一维数组赋值

C语言函数传递二维数组

c++ 用vector 定义二维数组

halcon 怎么定义二维数组