這是我第一次寫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) );
}
0 Comments
張貼留言