這是我第一次寫GO,如果有寫錯請留言告訴我,因為網友說他寫這個程式語言,我記得我之前有看過,是google開發的,網友說他寫好可以賺2000塊!那是他爸爸出的功課,所以我就幫他寫,大約學了2個小時才寫出下面這些程式。


package main
import "fmt"

func main() {
    var x int
    fmt.Scanf("%d", &x)
    var arr []int
    for i := 0; i > x; i++ {
        var e int
        fmt.Scan(&e)
        arr = append(arr, e)
    }
    for j := 0; j <= x-1; j++ {
        var y int = j
        for l := j+1; l <= x-1; l++ {
            if arr[l] < arr[y] {
                y = l
            }
        }
        if y != j {
            var t int = arr[j]
            arr[j] = arr[y]
            arr[y] = t
        }
    }
    fmt.Println(arr)
}

我覺得更酷的是下面這個程式,可以生成很多數字,不用一個一個自己慢慢輸入,就能測出我寫的程式對不對了!如果有排列對的話,他就會輸出true,反之就會輸出false。

package main
import (
	"fmt"
	"time"
	"math/rand"
	"sort"
	"reflect"
)

func randFill(n []int) {
	for i := 0; i < len(n); i++ {
		n[i] = rand.Intn(10000);
		fmt.Printf("%d ", n[i]);
	}
	fmt.Println();
}

func main() {
    const NUM_INPUT int = 1000;
	var nums []int;
	nums = make([]int, NUM_INPUT);
    rand.Seed(time.Now().UnixNano());
	randFill(nums);

	var golden []int;
	golden = make([]int, NUM_INPUT);
    copy(golden, nums);
    sort.Ints(golden);

	// sorting here
    for j := 0; j <= NUM_INPUT-1; j++ {
        var x int = j
        for l := j+1; l <= NUM_INPUT-1; l++ {
            if nums[l] < nums[x] {
                x = l
            }
        }
        if x != j {
            var t int = nums[j]
            nums[j] = nums[x]
            nums[x] = t
        }
    }
    //fmt.Println(nums)
	// result checking
	fmt.Println( reflect.DeepEqual(nums, golden) );
}