Golang实现交替星号方阵

Golang实现交替星号方阵 你好,我正在尝试做一个相当简单的练习,但我不知道如何解决这个问题;练习的文本是: 编写一个程序,从标准输入读取一个整数 n,并如执行示例所示,在屏幕上打印一个由 n 行组成的正方形,每行由 n 个符号和空格交替组成,交替打印仅由符号 *(星号)和空格组成的行,以及仅由符号 +(加号)和空格组成的行。 提示:你可以使用两个嵌套循环,并使用 % 运算符来区分偶数行和奇数行。 执行示例: 输入一个数字:5




我写的代码是:

package main
import "fmt"
func main() {

    var n int
    var riga int
    var riga2 int

    fmt.Println("Enter a number: ")
    fmt.Scan(&n)

    for riga = 1; riga <= n; riga++ {
        for riga2 = 1; riga2 <= n; riga2++ {
            fmt.Print("*")
        }
        for riga2 = 1; riga2 <= n; riga2++ {
            fmt.Print("+")
        }
        fmt.Print("\n")
    }
}

有人能帮忙吗?我不会使用 % 运算符,我该如何使用它?


更多关于Golang实现交替星号方阵的实战教程也可以访问 https://www.itying.com/category-94-b0.html

6 回复

这正是我必须做的,非常感谢!

更多关于Golang实现交替星号方阵的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


执行示例不可见,因此我添加一张图片: image

当然,你可以避免使用 %,但原帖的练习包含了使用它的说明,并且她询问了如何使用它。

当回答一个看起来像家庭作业的问题时,我倾向于指出正确的方向,而不是直接给出解决方案。

I can’t use the operator %, how can I use it?

在外层循环中对计数器应用 % 运算符。% 运算符返回整数除法的余数。你应该能够利用这一点来区分奇数行和偶数行。

是的,你不需要使用 % 运算符来交替输出。 代码可以这样写:

package main

import "fmt"

func printRow(ch byte, numcols int) {
	for i := 0; i < numcols; i++ {
		fmt.Printf("%c ", ch)
	}
}

func printPattern(n int) {
	var ch byte = '*'
	for i := 0; i < n; i++ {
		printRow(ch, n)
		fmt.Println()
		if ch == '*' {
			ch = '+'
		} else {
			ch = '*'
		}
	}
}

func main() {
	n := 5
	printPattern(n)
}

根据你的需求,你需要交替打印星号和加号的行,而不是在同一行中同时打印两种符号。以下是修正后的代码,使用 % 运算符来区分偶数行和奇数行:

package main
import "fmt"
func main() {
    var n int
    fmt.Println("Enter a number: ")
    fmt.Scan(&n)

    for i := 1; i <= n; i++ {
        // 使用 % 运算符判断行号的奇偶性
        if i%2 == 1 {
            // 奇数行打印星号和空格
            for j := 1; j <= n; j++ {
                if j%2 == 1 {
                    fmt.Print("*")
                } else {
                    fmt.Print(" ")
                }
            }
        } else {
            // 偶数行打印加号和空格
            for j := 1; j <= n; j++ {
                if j%2 == 1 {
                    fmt.Print("+")
                } else {
                    fmt.Print(" ")
                }
            }
        }
        fmt.Println()
    }
}

这段代码会交替打印星号行和加号行,并在每行内交替打印符号和空格。例如,当输入 5 时,输出如下:

* * *
+ + +
* * *
+ + +
* * *
回到顶部