主页

go - 算法入门

2024-02-01 10:39AM

题目:

使用go语言实现: 

1. 输入数字3  (表示接下来需要输入3本书)
2. 会看到提示: “请输入第一本输的名字和页数,逗号分割:"  
3. 输入 :  三体1,100 (回车)
4.  会看到提示: “请输入第2本输的名字和页数,逗号分割:"  
5. 输入 :  三体2,200 (回车)
6.7 会重复4.5 步骤

8. 会打印出这个结构:

[
  {  name: "三体1", page: 100 }  ,
  {  name: "三体2", page: 200 }  ,
  {  name: "三体3", page: 300 }  ,
]

9 .并且打印出: 总共有3本书,合计600页。

代码实现:

package main
import "fmt"
type Book struct {
  Name string
  Page int 
}

func main() {
  var number int 
  fmt.Print("请输入数字:")
  fmt.Scan(&number)

  // 声明一个名为books的切片变量,用于储存书法本的信息
  var books []Book
  for i := 1; i <= number; i++ {
    var bookName string
    var bookPage int 
    fmt.Println("请输入第", i, "本书的名字:")
    fmt.Scan(&bookName)
    fmt.Println("请输入第", i, "本书的页数:")
    fmt.Scan(&bookPage)

    // 使用用户输入的书本名字和页数创建一个结构体,并将值赋值给book的变量
    book := Book {
      Name: bookName,
      Page: bookPage,
    }   
    // 将book变量表示的数书本信息追加到books切片中
    books = append(books, book)
  }
  fmt.Println("输出结构:", books)
  // 声明一个名为totalPages的整数变量,用于储存所有书本的总页数
  totalPages := 0
  // 使用range关键字遍历books切片中的每本书,每次迭代将当前书本的页数累加到totalPages变量中
  for _, book := range books {
    totalPages += book.Page
  }
  fmt.Println("总共有", len(books), "本书,合计", totalPages, "页。")
}

运行结果:

meiyi@meiyi-Extensa-2511G:~/workspace/go$ go run go_book.go 
请输入数字:3
请输入第 1 本书的名字:
三体1
请输入第 1 本书的页数:
100
请输入第 2 本书的名字:
三体2
请输入第 2 本书的页数:
200
请输入第 3 本书的名字:
三体3
请输入第 3 本书的页数:
300
输出结构: [{三体1 100} {三体2 200} {三体3 300}]
总共有 3 本书,合计 600 页。

 

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论