【Go实战基础】数组实战,程序员的基本功

打印 上一主题 下一主题

主题 867|帖子 867|积分 2601

 数组实战,程序员的基本功。
实战需求:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
实战思路:
1、先声明两个数组,分别用于存储奇数和偶数,
2、然后遍历待排序的数组,根据是否可以被 2 整除,将数据分发到偶数和奇数数组,
3、最后将偶数数组追加到奇数数组之后作为新的数组返回。
马上安排!
一、工程目录
  1. cd go-002/
复制代码
二、创建 g002.go
  1. /*
  2. * @Author: 菜鸟实战
  3. * @FilePath: /go110/go-002/g002.go
  4. * @Description: 数组实战,程序员的基本功
  5. */
  6. package main
  7. import (
  8.         "fmt"
  9.         "runtime"
  10. )
  11. // 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,
  12. // 使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
  13. func formatArrayV1(arr []int) []int {
  14.         // 声明两个数组
  15.         var oddArr, evenArr []int
  16.         // 区分奇数和偶数
  17.         for _, value := range arr {
  18.                 if value%2 == 0 {
  19.                         evenArr = append(evenArr, value)
  20.                 } else {
  21.                         oddArr = append(oddArr, value)
  22.                 }
  23.         }
  24.         // 拼接
  25.         return append(oddArr, evenArr...)
  26. }
  27. // 主函数
  28. func main() {
  29.         // 使用内置函数打印
  30.         println("Hello", "菜鸟实战")
  31.         // 待排序数组
  32.         arr := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
  33.         fmt.Println("排序前:", arr)
  34.         fmt.Println("排序后:", formatArrayV1(arr))
  35.         // 使用包函数打印
  36.         fmt.Printf("版本: %s \n", runtime.Version())
  37. }
复制代码
三、编译和运行
1、编译运行
  1. # 1、生成模块依赖
  2. go mod init g002
  3. # 2、编译
  4. go build g002.go 
  5. # 3、编译后的目录结构
  6. └── go-002
  7.     ├── g002
  8.     ├── g002.go
  9.     └── go.mod
  10. # 4、运行
  11. go run g002
复制代码
2、运行结果
Hello 菜鸟实战
排序前: [0 1 2 3 4 5 6 7 8 9]
排序后: [1 3 5 7 9 0 2 4 6 8]
版本: go1.17.10 
菜鸟实战,持续学习!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

冬雨财经

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表