我是编程新手,我正在尝试用我喜欢的语言(如Python和Go语言)做一些练习来提高我的编程逻辑。
在这个特殊的例子中,我的问题是围棋。
代码基本上应该打印以下内容:
Example
First person info:
Name: Mary
Age: 19
Second person info:
Name: John
Age: 20
The average age of Mary and John is 19.5 years
为了完成这个练习,我尝试了下面的代码:
package main
import "fmt"
func main() {
var name1 int
var name2 int
var age1, age2 int
var average float32
fmt.Println("First person info:")
fmt.Print("Name: ")
fmt.Scan(&name1)
fmt.Print("Age: ")
fmt.Scan(&age1)
fmt.Println("Second person info:")
fmt.Print("Name: ")
fmt.Scan(&name2)
fmt.Print("Age: ")
fmt.Scan(&age2)
average = float32((age1 + age2) / 2)
fmt.Printf("\nThe average age of %d and %d is %f years", &name1, &name2, &average)
}
我尝试了一些变体,试图转换一些变量,但问题是输出如下所示:
一个三个一个x一个四个一个x一个五个一个x一个六个一个x一个x一个x一个x一个
所以,代码没有一个一个地显示print
函数。我回答了第一个名字(name1
),很快我就回答了,输出了所有其他的,所有在一起(年龄,第二人称信息等)我尝试了所有的东西,但不知道哪里可能出错了...
2条答案
按热度按时间kg7wmglp1#
有几件事:
fmt.Print
函数不会给你打印的字符串添加换行符,所以你可能想把fmt.Print("Name: ")
这样的行改成fmt.Println("Name:")
或者fmt.Print("Name:\n")
。1.#1在这里会有所帮助,但是你可能想看看
fmt.Scanf
函数,它允许你提供一个类似fmt.Scanf("%d", &age1)
的格式字符串来显式地查找输入中的整数或整数。1.您已经将
name1
和name2
变量声明为int
,我认为它们应该是string
。1.在打印出平均值的那一行中,去掉变量前面的
&
,这里不需要它。希望这能让你更接近你想去的地方。
w1jd8yoj2#