add: array exercises
This commit is contained in:
58
14-arrays/exercises/12-sorter/solution/main.go
Normal file
58
14-arrays/exercises/12-sorter/solution/main.go
Normal file
@ -0,0 +1,58 @@
|
||||
// For more tutorials: https://blog.learngoprogramming.com
|
||||
//
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func main() {
|
||||
args := os.Args[1:]
|
||||
|
||||
switch l := len(args); {
|
||||
case l == 0:
|
||||
fmt.Println("Please give me up to 5 numbers.")
|
||||
return
|
||||
case l > 5:
|
||||
fmt.Println("Sorry. Go arrays are fixed.",
|
||||
"So, for now, I'm only supporting sorting 5 numbers...")
|
||||
return
|
||||
}
|
||||
|
||||
var nums [5]float64
|
||||
|
||||
// fill the array with the numbers
|
||||
for i, v := range args {
|
||||
n, err := strconv.ParseFloat(v, 64)
|
||||
if err != nil {
|
||||
// skip if it's not a valid number
|
||||
continue
|
||||
}
|
||||
|
||||
nums[i] = n
|
||||
}
|
||||
|
||||
/*
|
||||
check whether it's the last element or not:
|
||||
i < len(nums)-1
|
||||
|
||||
check whether the next number is greater than the current one, if so, swap it:
|
||||
v > nums[i+1]
|
||||
*/
|
||||
for range nums {
|
||||
for i, v := range nums {
|
||||
if i < len(nums)-1 && v > nums[i+1] {
|
||||
nums[i], nums[i+1] = nums[i+1], nums[i]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Println(nums)
|
||||
}
|
Reference in New Issue
Block a user