当前位置: 首页 > news >正文

31-Golang中的二维数组

二维数组的使用方式

使用方式一:先声明/定义再赋值

  • 1.语法:var数组名 [大小] [大小]类型
  • 2.比如:var arr [2] [3]int,再赋值
package main
import ("fmt"
)func main() {//定义/声明数组var arr [4][6]int//赋初值arr[1][2] = 1arr[2][1] = 2arr[2][3] = 3for i := 0; i < 4 ; i++{for j := 0; j < 6; j++{fmt.Print(arr[i][j]," ")}fmt.Println()}
}
/*
0 0 0 0 0 0 
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0
*/

使用方式二:直接初始化

  • 1.声明:var数组名[大小] [大小]类型 = [大小] [大小]类型{{初值…},{初值…}}
var arr[2][3]int = [2][3]int{{1,2,3},{4,5,6}}
fmt.Println("arr=", arr)
  • 2.赋值(有默认值)
  • 3.二维数组在声明/定义时也对应有四种写法[和一维数组类似]
    • var数组名[大小] [大小]类型 = [大小] [大小]类型{{初值…},{初值…}}
    • var数组名[大小] [大小]类型 = […] [大小]类型{{初值…},{初值…}}
    • var数组名 = [大小] [大小]类型{{初值…},{初值…}}
    • var数组名 = […] [大小]类型{{初值…},{初值…}}

二维数组在内存中的形式

在这里插入图片描述

二维数组的遍历

双层for循环完成遍历


func main() {var arr = [2][3]int{{1,2,3},{4,5}}for i := 0; i < len(arr) ; i++{for j := 0; j < len(arr[i]); j++{fmt.Printf("%v\t", arr[i][j])}fmt.Println()} 
}
/*
1       2       3
4       5       0
*/

for-range方式完成遍历

func main() {var arr = [2][3]int{{1,2,3},{4,5}}for i, v := range arr {for j, v1 := range v{fmt.Printf("arr[%v][%v]=%v\t",i,j,v1)}fmt.Println()}
}
/*
arr[0][0]=1     arr[0][1]=2     arr[0][2]=3
arr[1][0]=4     arr[1][1]=5     arr[1][2]=0
*/

案例

定义二维数组,用于保存三个班,每个班五名同学的成绩

并求出每个班级平均分,以及所有班级平均分

package main
import ("fmt")func main() {var scores [3][5]float64for i := 0; i < len(scores); i++{for j := 0; j < len(scores[i]); j++{fmt.Printf("请输入第%d班的第%d个学生的成绩\n", i + 1, j +1)fmt.Scanln(&scores[i][j])}}totalSum := 0.0for i := 0; i < len(scores); i++{sum := 0.0for j := 0; j < len(scores[i]); j++{sum += scores[i][j]}totalSum += sumfmt.Printf("第%d班的总分为%v,平均分为%v\n",i + 1,sum,sum/float64(len(scores[i])))}fmt.Printf("所有班的的总分为%v,平均分为%v",totalSum,totalSum/float64(len(scores)))
}/*
第1班的总分为36,平均分为7.2
第2班的总分为282,平均分为56.4
第3班的总分为137,平均分为27.4
所有班的的总分为455,平均分为151.66666666666666
*/
http://www.lryc.cn/news/9421.html

相关文章:

  • <<Java开发环境配置>>6-SQLyog安装教程
  • MySQL 中的 distinct 和 group by 哪个效率更高
  • 计算机相关专业毕业论文选题推荐
  • 网络编程套接字之TCP
  • 网络与串口调试工具TCPCOM
  • 数据库常用命令
  • PTA复习
  • TypeScript 学习之接口
  • 原码反码补码
  • 大数据选股智能推荐系统V1.0-1
  • 调研生成GIF表情包之路
  • 【RocketMQ】源码详解:生产者启动与消息发送流程
  • 信息安全(一)
  • 企业多会场视频直播(主会场、分会场直播)实例效果
  • 线性代数速览(一)行列式
  • 恭喜山东翰林“智慧园区管理系统”获易知微可视化设计大赛二等奖
  • gulp简单使用
  • ce认证机构如何选择?
  • 全网招募P图高手!阿里巴巴持续训练鉴假AI
  • webrtc QOS笔记一 Neteq直方图算法浅读
  • 细分和切入点
  • iOS创建Universal Link
  • RuoYi-Vue搭建(若依)
  • 进程组和用处
  • Nacos集群+Nginx负载均衡
  • TypeScript 学习之类型兼容
  • Linux软件管理RPM
  • 01背包问题
  • 14_FreeRTOS二值信号量
  • JavaScript随手笔记---轮播图(点击切换)