数组应用实例(1)|学习笔记

简介: 快速学习数组应用实例(1)。

开发者学堂课程【GO 语言核心编程-基础语法、数组、切片、Map:数组应用实例(1)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9632


数组应用实例(1)

 

一、数组应用实例及解决方法

1.数组应用案例

(1) 创建一个 byte 类型的26个元素的数组,分别放置'A'-‘Z’。使

for 循环访问所有元素并打印出来。提示:字符数据运算‘A'+1->'B'

//应用了字符可以参与运算的特性,也就是说在放置的时候,不能一个一个放置,要求使用 for 循环来进行放置和打印。

(2) 解:

新建一个文件夹叫 arrayExercise,再创建一个文件 main.go

package main

import { //引用包

"fmt"

func main() {

(3) 要求:

①创建一个 byte 类型的26个元素的数组,分别放置'A'-‘Z’。

②使用 for 循环访问所有元素并打印出来。提示:字符数据运算‘A'+1->'B'

(4) 思路:

①声明一个数组 var myChars [26]byte  

②声明一个数组叫 myChars ,大小为26,数组类型为 byte

③使用 for 循环,利用字符可以进行运算的特点来赋值‘A'+1 ->‘B'

④使用 for 打印即可

(5) 代码:

var mychars [26]byte

for i := 0; i < 26; i++  {  

//定义一个i,从0开始 i 小于26

myChars[i] ='A' + byte(i)  

//myChars 下标为i的时候等于“A”加上 byte(i)

(6) 注意:需要将 i => byte,因为此项目在计算的时候是 int 类型

而A的类型是 byte,类型不匹配,不能够进行运算,所以不能只写 i,否则会报错

}

for i := 0; i < 26; i++ {

fmt.Printf("%c ", myChars[i])  

//使用 for 循环进行输出,按照字符进行输出,所以需要格式化成%c

输出效果如下:

image.png

输出结果正确。

2.请求出一个数组的最大值,并得到对应的下标

给与一个数组,并且要求把此数组的最大值导出来,而且需要将最大值对应的下标找出来

(1) 思路

①声明一个数组 var intArr [5]int=[...]int {1,-1,9, 90,11}

②首先声明一个数组,名称叫 intArr,数组有五个元素为{1,-1,9,90,11},最大值为90

③假定第一个元素就是最大值,下标就是0

④然后从第二个元素开始循环比较,如果发现有更大的数,则交换

fmt.Println()(最大值)

(2) 代码:

fmt.Println()  //输出换行

var intArr [5]int = [...]int {1,-1,9,90,11}  //定义数组

maxVal := intArr[0]   //定义一个变量,最大值为第一个元素

maxValIndex := 0  //最大值的下标为0

for i := 1; i < len(intArr); i++ {  

//for 循环,从第二个元素开始进行循环比较,如果发现有更大,则交换

if maxVal < intArr[i] {  //如果发现 maxVal 小于当前的值

maxVal = intArr[i]  //交换最大值

maxValIndex = i  //交换下标

当整个for循环结束后,maxVal 和 maxVlIndex 就是真实的最大值以及最大值下标

}

}

fmt.Printf( "maxVal=%v maxValIndex=%v", maxVal,maxValIndex)  //输出最大值以及最大值对应的坐标

}

运行结果如下:

maxVal=90 maxVlindex=3

从结果可知,最大值为90,下标为3,结果成立。

如果元素增加一位,则代码无需变化,只需要增加一个元素即可:

var intArr [6]int=[...]int {1,-1,9, 90,11,9000}

运行结果如下:

maxVal=90 maxVlindex=5

最大值为9000,下标为5,完全正确。

3.请求出一个数组的和和平均值。for-range

相关文章
|
9月前
|
机器学习/深度学习 PyTorch 调度
MiTS与PoTS:面向连续值时间序列的极简Transformer架构
本文探讨了将标准Transformer架构应用于连续值时间序列数据的最小化调整方案,提出了极简时间序列Transformer(MiTS-Transformer)和位置编码扩展时间序列Transformer(PoTS-Transformer)。通过替换嵌入层为线性映射层,MiTS-Transformer实现了对正弦波序列的有效学习。而PoTS-Transformer则通过在高维空间中进行位置编码,结合低维模型架构,解决了长序列处理与过拟合问题。实验结果表明,这两种模型在不同类型的时间序列预测任务中表现出色,为基于Transformer的时间序列预测提供了高效基准方案。
237 5
MiTS与PoTS:面向连续值时间序列的极简Transformer架构
|
Linux 测试技术 Docker
软件测试|使用docker搞定 Python环境搭建
软件测试|使用docker搞定 Python环境搭建
|
弹性计算 运维 Serverless
卓越效能,极简运维,体验Serverless高可用架构,完成任务可领取转轮日历!
卓越效能,极简运维,体验Serverless高可用架构,完成任务可领取转轮日历!
|
NoSQL 关系型数据库 数据库
JumpServer的Docker部署实战案例
JumpServer的Docker部署实战案例,详细介绍了JumpServer的概述、环境准备、基于Docker的快速部署步骤,以及如何访问JumpServer的WebUI。
1674 1
|
编译器
C进阶:文件的基础操作(一)
C进阶:文件的基础操作
152 0
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的校园停车场管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的校园停车场管理系统附带文章和源代码部署视频讲解等
140 4
|
编解码 JavaScript
解释基本的3D理论
本文介绍了所有基本理论,这些理论在开始使用 3D 时很有用。
438 0
解释基本的3D理论
QGS
|
Prometheus 监控 Cloud Native
(openEuler21.03-Centos7-x86)prometheus-2.16.0+grafana-7.2.0监控mysql8
记(openEuler21.03-Centos7-x86)prometheus-2.16.0+grafana-7.2.0监控mysql8
QGS
415 0
(openEuler21.03-Centos7-x86)prometheus-2.16.0+grafana-7.2.0监控mysql8
|
消息中间件 安全 Java
阿里云 短信服务——发送短信验证码图文教程
阿里云 短信服务——发送短信验证码图文教程
7252 2