亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang 打印不需要的值

Golang 打印不需要的值

Go
手掌心 2022-06-13 14:57:37
我是 GoLang 的新手,正在嘗試編寫這個程序 -程序應該寫成一個循環。在進入循環之前,程序應該創建一個大?。ㄩL度)為 3 的空整數切片。在每次通過循環期間,程序都會提示用戶輸入要添加到切片中的整數。程序將整數添加到切片中,對切片進行排序,并按排序順序打印切片的內容。切片的大小必須增加以容納用戶決定輸入的任意數量的整數。當用戶輸入字符“X”而不是整數時,程序應該只退出(退出循環)。所以我的代碼是 -package mainimport (    "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 number4[0 0 0 4]Please enter a number5[0 0 0 4 5]Please enter a number1[0 0 0 1 4 5]看起來它可以打印并排序,但是我如何擺脫前三個“0”?謝謝!
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

希望這是您想要打印的方式?。ǖ衅?,只打印非零值),試試這個!


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("")


        }


}


查看完整回答
反對 回復 2022-06-13
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

mySlice := make([]int, 3)

它很好地初始化一個切片,它的大小是3,然后附加3個零來初始化它


像這樣打印:


fmt.Println(mySlice)

fmt.Println("len: ", len(mySlice))

fmt.Println("cap: ", cap(mySlice))

[0 0 0]

len:  3

cap:  3

你只能初始化 init cap


mySlice := make([]int, 0, 3)

fmt.Println(mySlice)

fmt.Println("len: ", len(mySlice))

fmt.Println("cap: ", cap(mySlice))

[]

len:  0

cap:  3


查看完整回答
反對 回復 2022-06-13
  • 2 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號