二维数组
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列的二维数组
等价于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)
以上是关于二维数组的主要内容,如果未能解决你的问题,请参考以下文章