结构体和链表
PTA 实验作业
7-1查找书籍
1.本题 pta 提交列表
2.设计思路
本题要求我们给定n本书的名称和定价并编写程序,查找并输出其中定价最高和最低的书的名称和定价。
尤其注意到的是要保证输出的为保留两位小数
这种题目我们要使用结构体,首先先定义好书名和价格为结构体,再定义 max 和 min并初始化为0用来标记最小价格和最高价格的书
再输入书本的个数n 之后,要判断循环变量 i 是否小于 n,不是的话直接输出答案
是的话再输入书本信息,并比较 s[i] 和 max 或 min 的大小,如果大于 max 则用 s[i]替换 max,min 同理,最后 i++
3.1源代码截图
3.2思路流程图截图
4.本题调试过程碰到问题及PTA提交列表情况说明
本题之前一直误用 scanf, 忘记了书名有空格不可以用 scanf, 所以改成了 gets.
7-3 找出总分最高的学生
1.本题 pta 提交列表
2.设计思路
本题要求给定N个学生的基本信息,包括学号姓名和3门课程的成绩,要求输出总分最高学生的姓名、学号和总分。
这题和7-1那一题相类似,都是先定义并输入学生个数n, 令循环变量初始化 i=0,同时先定义 max=0用来存放总成绩最大的值
之后判断 i 是否小于 n, 如果大于的话直接输出总成绩最高的那位学生的信息
如果小于的话依次输入学生的三科成绩还有学生姓名与学号
定义总成绩 sum=三科之和并与 max 比较,如果大于 max 则令 max=s1.sum
3.1源代码截图
3.2思路流程图截图
4.本题调试过程碰到问题及PTA提交列表情况说明
本题略比7-1简单,唯一需要注意到的就是最后输出时候要保留两位小数.
7-12 单向链表4
1.本题 pta 提交列表
2.设计思路
本题要求我们定义单向链表:输入若干个正整数(输入-1为结束标志)同时按输入数据的逆序并输出
由于这道题到本题集结束为止老师还没教,故先用旧知识完成
首先由于题目没有说明输入几个,所以我们只能先定义稍微大的数组a[i]来存放,当 a[i]不等于-1时候一直循环输入
跳出循环之后应为需要我们逆序输出这一串数,同时要保证最后一个不能有空格,就令 n=i-1,当 n大于或等于0时候执行循环输出
每次输出前要判定该数是否为最后一个,也就是说n是否为0
如果n为零则只需输出该数就好,如果 n 不为0则需要我们输出 n 之后再输出空格
3.1源代码截图
3.2思路流程图截图
4.本题调试过程碰到问题及PTA提交列表情况说明
本题调试错误主要是因为我没有在最后一个输出的时候省略输出空格导致格式错误
同学代码结对互评
1.互评同学名称
黄世坤
题目 7-6
2.我的代码
对方代码截图
从代码长度来看明显对方的代码比我的要短很多,这也是对方代码的优势所在,其次对方使用了 string.h 头文件,使代码更加简单,就此而言,我更喜欢对方的代码.
本周学习总结
1你学会了什么
我学会的知识点:
1、结构体定义只是一种数据结构,并不是存在的实体,只是一种自定义的类型
2、结构体变量是这种类型的变量,就像是int n中的n一样只是一个变量,它的值可以像变量一样改变
3、结构体数组是和一般数组类似,只是它的每个元素都具有结构体的结构。
4混合定义是指在定义结构类型时候一同定义结构变量
进一步思考到用结构体去实现线性结构的链表,及其对链表的建立,结点的建健、查找、删除、插入等综合操作。。自己写出这个程序,那么我们的结构体知识点及数据结构的还有相关的基础知识也就撑握得差不多了。我认为是这样的。。所以近来加大了上机力度和时间。
2本周的内容,你还不会什么?
由于少用结构的嵌套,导致对结构的嵌套使用不太熟悉.