Xunyira箐
2021-01-27 22:39【初学】Golang中类c链表制作学生管理系统中关于“打印学生信息”存在的小问题
如图所示,当分次往程序中输入学生信息后再输出,两次输入的信息输出信息之间会有一个意义不明的“0 0.00”
纯新人,先前只学过一点c/c++和python,想学着在c中那样在go中利用链表的形式创建一个学生管理系统,结果只到输出环节就翻车了
以下是关于输入/输出的相关代码:
package main
import(
"fmt"
"os"
)
func Add(head *student) *student{ //输入学生信息
var(
p *student = nil
pr *student = nil
num string
Name string
Sex byte
Age int
Score float64
)
fmt.Println("开始录入学生信息:")
fmt.Println("请按照学号、姓名、性别、年龄、成绩的顺序录入:")
for true{
p = new(student) //申请内存
if p == nil{
fmt.Println("不够内存!")
os.Exit(1)
}
if head == nil{
head = p //若 头指针 为 空,则头指针指向 新申请内存空间p
}else{
pr = head
for pr.next != nil{
pr = pr.next
}
pr.next = p
}
fmt.Scan(&num)
if num == "-1"{
fmt.Println("录入结束!")
p = nil
break
}
fmt.Scanf("%s %c %d %f",&Name,&Sex,&Age,&Score)
p.number = num
p.name = Name
p.sex = Sex
p.age = Age
p.score = Score
p.next = nil
People ++
}
fmt.Println("录入成功!")
return head //返回
}
package main
import (
"fmt"
)
func Print_(head *student){ //输出学生信息
if head == nil{
fmt.Println("你的学生信息表单为空!")
return
}
var pr = head
for pr.next != nil{
fmt.Printf("%s %s %c %d %.2f\n",pr.number,
pr.name,pr.sex,pr.age,pr.score)
pr = pr.next
}
}
求大神援助(😭
- 点赞
- 回答
- 收藏
- 复制链接分享
4条回答
为你推荐
- inlang64中[] byte的Golang大小
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 1个回答
- 如何在Golang中打印多行exec输出
- exec
- 1个回答
- Golang的Gin框架在发布请求中传递了一系列json对象时出现问题
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 1个回答
- 打印mongoDB Collection Golang中的所有记录
- mongodb
- 2个回答
- 在golang中打印切片的地址
- slice
- arrays
- pointers
- 1个回答
换一换