结构体与链表
#一
题目1.
7-1 查找书籍(20 分)
给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。
输入格式:
输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。
输出格式:
在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。
1.本题pta提交列表
本题代码
2.设计思路
以上↑↑↑↑答题思路
3.本题调试过程碰到问题及PTA提交列表情况说明
1.如何定义结构体2.比较价格大小后将书籍对应的信息拷贝
第一次提交
第一次提交输入格式错误,应是先输入书名再输入价格,导致输入答案错第二误。
第二次提交,因为直接用scanf输入书名中不能含空格,所以出现段错误。发现后该用试用getchar()函数,一直读到换行结束。
题目2.
7-3 找出总分最高的学生(15 分)
给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。
输入格式:
输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。
1.本题提交列表
本题代码
2.设计思路
↑上答题思路,具体求最高平均分,设计一个循环,定义一个最高分,循环进行比较,最后找到最高分。
3.本题调试过程碰到问题及PTA提交列表情况说明
怎么讲求出来的平均分放入已经定义好的结构体数组中。
第一次提交
输入stydent[i].subject时没有用&stydent[i].subject,因为定义suject时用的是int函数,所以要加&
第二次提交
第二次提交当flag=1时,n应<n-1.
题目3.
7-12 单向链表4(10 分)
定义单向链表:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序并输出。
输入输出示例:括号内为说明
输入样例:
1 2 3 4 5 6 7 -1
1.本题提交列表
![](https://images2017.cnblogs.com/blog/1284894/201801/1284894-20180120125537162-197638695.png)
2.本题代码
2.设计思路
1输入十个数,以指针方式,每输入一次,指针自加。
2 指针自减一次,即指向最后一个。
3 输出10次,依次自减,即可达到目的。
3.本题调试过程碰到问题及PTA提交列表情况说明
碰到问题,怎么使指针进行自加自减。
第一次提交
第一次提交答案错误是因为没有弄清循环输入的条件,当输入的第一个数不为-1时就应该进入循环输入。所以应是while(num!=-1)。
#二、代码互评
互评同学名称:李彦婵(没错又是她(*^▽^*)!!)
题目.
7-9 查找成绩最高的学生(10 分)
编写程序,从键盘输入 n (n<10)个学生的学号(学号为4位的整数,从1000开始)、成绩并存入结构数组中,查找并输出成绩最高的学生信息。
输入输出示例:括号内为说明,无需输入输出
输入样例:
3 (n=3)
1000 85
1001 90
1002 75
我的代码:
彦婵的:
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
用的都是结构体且思路差不多,但彦婵直接定义结构体struct max,s1,而我定义的结构体max中包含详细定义,彦婵的程序更加简洁,而我的程序比较详细哦,我更喜欢彦婵的,简单的程序一目了然出错也更加容易找出。
三、截图pta排名
四.本周学习总结
1.你学会了什么?
1.链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
2.插入操作处理顺序:中间节点的逻辑,后节点逻辑,前节点逻辑。按照这个顺序处理可以完成任何链表的插入操作。
2.本周的内容,你还不会什么?
7-10 单向链表1(10 分)
链表节点定义为: struct Node{ int data; struct Node *next; }
编程实现:输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入若干个正整数(输入-1为结束标志),建立一个单向链表,将其中的奇数值结点删除后输出
输入输出示例:括号内为说明
本题不知道如何进入循环并且跳出循环,因为开始输入num需要进入循环,但输入-1的时候,若num>1,要进入下一个循环,这个点搞得不是很清楚。
3.其他总结
创建链表的过程,,真的很复杂,一知半解是创建不出来的!!要完全搞懂还需努力!!