编写一个 Go 程序,使用 for 循环打印沙漏星形图案。
package main
import "fmt"
func main() {
var i, j, k, row int
fmt.Print("Enter Sandglass Star Pattern Rows = ")
fmt.Scanln(&row)
fmt.Println("**** Sandglass Star Pattern ****")
for i = 0; i <= row-1; i++ {
for j = 0; j < i; j++ {
fmt.Printf(" ")
}
for k = i; k <= row-1; k++ {
fmt.Printf("* ")
}
fmt.Println()
}
for i = row - 1; i >= 0; i-- {
for j = 0; j < i; j++ {
fmt.Printf(" ")
}
for k = i; k <= row-1; k++ {
fmt.Printf("* ")
}
fmt.Println()
}
}

此 Go 示例 打印给定字符的沙漏图案。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var i, j, k, row int
fmt.Print("Enter Sandglass Star Pattern Rows = ")
fmt.Scanln(&row)
fmt.Print("Enter Character to Print in Sandglass = ")
ch, _, _ := reader.ReadRune()
fmt.Println("**** Sandglass Star Pattern ****")
for i = 0; i <= row-1; i++ {
for j = 0; j < i; j++ {
fmt.Printf(" ")
}
for k = i; k <= row-1; k++ {
fmt.Printf("%c ", ch)
}
fmt.Println()
}
for i = row - 1; i >= 0; i-- {
for j = 0; j < i; j++ {
fmt.Printf(" ")
}
for k = i; k <= row-1; k++ {
fmt.Printf("%c ", ch)
}
fmt.Println()
}
}
Enter Sandglass Star Pattern Rows = 10
Enter Character to Print in Sandglass = $
**** Sandglass Star Pattern ****
$ $ $ $ $ $ $ $ $ $
$ $ $ $ $ $ $ $ $
$ $ $ $ $ $ $ $
$ $ $ $ $ $ $
$ $ $ $ $ $
$ $ $ $ $
$ $ $ $
$ $ $
$ $
$
$
$ $
$ $ $
$ $ $ $
$ $ $ $ $
$ $ $ $ $ $
$ $ $ $ $ $ $
$ $ $ $ $ $ $ $
$ $ $ $ $ $ $ $ $
$ $ $ $ $ $ $ $ $ $