第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

導(dǎo)致死機的原因:運行時錯誤:索引超出范圍 [4],長度為 4,即使數(shù)組初始化為動態(tài)數(shù)組也是如此

導(dǎo)致死機的原因:運行時錯誤:索引超出范圍 [4],長度為 4,即使數(shù)組初始化為動態(tài)數(shù)組也是如此

Go
守著星空守著你 2022-08-01 10:53:46
我已經(jīng)初始化了一個動態(tài)數(shù)組,但它顯示索引超出范圍。我也嘗試過提供固定長度,但它也顯示相同的錯誤。錯誤說明: 死機: 運行時錯誤: 索引超出范圍 [4] 與長度 4package mainimport "fmt"func missingNumber(nums []int) int {arrSum := 0arrLen := len(nums) + 1for i := 0; i < arrLen; i++ {arrSum += nums[i]}numSum := arrLen * (arrLen + 1) / 2missingNumber := numSum - arrSumreturn missingNumber}func main() {nums := []int{1, 3, 4, 5}result := missingNumber(nums)fmt.Println(result)}
查看完整描述

2 回答

?
繁花不似錦

TA貢獻1851條經(jīng)驗 獲得超4個贊

您應(yīng)該更改為 。arrLen := len(nums) + 1arrLen := len(nums)


數(shù)組長度為 4。為此,索引為 0,1,2,3。但是當(dāng)你試圖做.該值現(xiàn)在是 。但你只有4個元素。并從循環(huán)中嘗試獲取數(shù)組中不存在的元素。這將為您提供運行時錯誤,并且會崩潰。arrLen := len(nums) + 1arrlen5


這個將為你工作:


package main

import "fmt"

func missingNumber(nums []int) int {

arrSum := 0

arrLen := len(nums)

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

arrSum += nums[i]

}

m := arrLen + 1

numSum := m * (m + 1) / 2

missingNumber := numSum - arrSum

return missingNumber

}

func main() {

nums := []int{1, 3, 4, 5}

result := missingNumber(nums)

fmt.Println(result)

}


查看完整回答
反對 回復(fù) 2022-08-01
?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

下面是程序中的更正,用于從自然數(shù)序列中查找單個缺失的數(shù)字。您正在索引數(shù)組 nums[len(nums) + 1] 超出數(shù)組的邊界。如果允許,這應(yīng)該訪問隨機內(nèi)存并將任何垃圾值讀取為合法值,您甚至不會知道如此難以找到的錯誤。好消息是Go檢查您是否僅訪問數(shù)組中存

package main


import "fmt"


func missingNumber(nums []int) int {

    arrSum := 0

    arrLen := len(nums)

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

        arrSum += nums[i]

    }

    //let n be the total natural number: which will be provided plus 1 missing

    n := arrLen + 1

    numSum := n * (n + 1) / 2

    missingNumber := numSum - arrSum

    return missingNumber

}

func main() {

    nums := []int{1, 3, 4, 5}

    result := missingNumber(nums)

    fmt.Println(result)

}

或者,您可以使用范圍循環(huán)來確保安全:or _, i := range nums { ...


package main


import "fmt"


func missingNumber(nums []int) int {

    arrSum := 0

    arrLen := len(nums)


    for _, i := range nums {

        arrSum += i

    }

    //let n be the total natural number; which will be provided plus 1 missing

    n := arrLen + 1

    numSum := n * (n + 1) / 2

    missingNumber := numSum - arrSum

    return missingNumber

}

func main() {

    nums := []int{1, 3, 4, 5}

    result := missingNumber(nums)

    fmt.Println(result)

}

在的那些元素,而不是超出該元素。在 Go 規(guī)格中閱讀此內(nèi)容

查看完整回答
反對 回復(fù) 2022-08-01
  • 2 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號