gpt4 book ai didi

go - Golang打印不需要的值

转载 作者:行者123 更新时间:2023-12-01 22:44:18 25 4
gpt4 key购买 nike

我是GoLang的新手,正在尝试编写此程序-

该程序应编写为循环。进入循环之前,程序应创建一个空的整数 slice ,其大小(长度)为3。在每次循环过程中,程序都会提示用户输入要添加到 slice 中的整数。程序将整数添加到 slice 中,对 slice 进行排序,然后按排序顺序打印 slice 的内容。 slice 的大小必须增加以容纳用户决定输入的任意数量的整数。仅当用户输入字符“X”而不是整数时,程序才应退出(退出循环)。

所以我的代码是-

package main

import (
"fmt"
"sort"
"strconv"
)

func main() {
mySlice := make([]int, 3)
var input string

for i := 0; i < len(mySlice); i++ {
fmt.Println("Please enter a number")
fmt.Scanln(&input)
if input == "X" {
break
}

mySlice_var, err := strconv.Atoi(input)
if err != nil {
fmt.Println("Wrong input")
continue
}

// mySlice[i] = mySlice_var
mySlice = append(mySlice, mySlice_var)
// mySlice[i] = mySlice_var

sort.Ints(mySlice)
fmt.Println(mySlice)

}

}

例如,如果我输入第一个4,而不是5,然后输入1,它将打印我
Please enter a number
4
[0 0 0 4]
Please enter a number
5
[0 0 0 4 5]
Please enter a number
1
[0 0 0 1 4 5]

看起来可以打印并排序正常,但是如何摆脱前三个“0”呢?
谢谢!

最佳答案

希望这是您要打印的方式! (遍历Slice,并且仅打印非零值),请尝试此操作!

package main

import (
"fmt"
"sort"
"strconv"
)

func main() {
mySlice := make([]int, 3)
var input string

for i := 0; i < len(mySlice); i++ {
fmt.Println("Please enter a number")
fmt.Scanln(&input)
if input == "X" {
break
}

mySlice_var, err := strconv.Atoi(input)
if err != nil {
fmt.Println("Wrong input")
continue
}

// mySlice[i] = mySlice_var
mySlice = append(mySlice, mySlice_var)
// mySlice[i] = mySlice_var

sort.Ints(mySlice)
// fmt.Println(mySlice)
//Iterating Over Slice , and printed only non zero values
for _,v := range mySlice{
if v != 0 {
fmt.Printf("%v",v)
}
}
fmt.Println("")

}

}

关于go - Golang打印不需要的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62460507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com