Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с голанг

vll. sl Ученик (130), открыт 4 недели назад
ввод 5 цифр, вывод в обратном порядке, не понимаю где ошибка и что нужно исправить ?
1 ответ
Андрей Высший разум (454756) 4 недели назад
[5]int - НЕ срез, а массив неизменной длины, равной 5. Который НЕ создаётся функцией make и для которого бессмысленно использовать функцию len.

Использование массива:
 package main
import "fmt"

func FiveSteps(arr [5]int) [5]int {
var reversed [5]int
for i, v := range arr {
reversed[4 - i] = v
}
return reversed
}

func main() {
tmp := [5]int{1, 4, 9}
fmt.Println(tmp)
fmt.Println(FiveSteps(tmp))
}

Использование среза:
 package main
import "fmt"

func FiveSteps(arr []int) []int {
reversed := make([]int, len(arr))
for i, v := range arr {
reversed[len(arr) - 1 - i] = v
}
return reversed
}

func main() {
tmp := []int{1, 4, 9}
fmt.Println(tmp)
fmt.Println(FiveSteps(tmp))

tmp = []int{1, 4, 9, 16, 25, 36, 49}
fmt.Println(tmp)
fmt.Println(FiveSteps(tmp))
}
Похожие вопросы