Your question is Fix Errors in Code Snippets. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
A Mediterranean Shipping-style container line validates a vessel's container manifest before departure using this function. It's supposed to reject any manifest that would overload the vessel or contains bad data.
package manifest
import "fmt"
type Container struct {
ID string
WeightKg float64
MaxWeightKg float64
}
func ValidateManifest(containers []Container) (bool, string) {
var totalWeight float64
for i := 0; i <= len(containers); i++ {
c := containers[i]
totalWeight += c.WeightKg
if c.WeightKg > c.MaxWeightKg {
return false, fmt.Sprintf("container %s over limit", c.ID)
}
}
if totalWeight > MaxVesselWeightKg {
return false, "manifest exceeds vessel capacity"
}
return true, ""
}
const MaxVesselWeightKg = 50000.0
func AverageContainerWeight(containers []Container) float64 {
var total float64
for _, c := range containers {
total += c.WeightKg
}
return total / len(containers)
}
This function is supposed to validate a container manifest before a vessel departs. Find every error in it, including ones that will crash, ones that silently produce wrong numbers, and validation checks that are simply missing, and explain how you'd fix each one.