结构体和链表

Posted L-HUI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体和链表相关的知识,希望对你有一定的参考价值。

 

结构体

一、PTA实验作业

 

7-1

给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。

1. 本题PTA提交列表

2. 设计思路

在循环中对书籍价格进行判断,令i=0,则max=s[i],min=s[i];再进行判断如果max.price<s[i].price,则max=s[i],如果max.price>s[i].price,则min=s[i];

最后分别输出价格最高和低的书籍的名称和价格。

3.本题调试过程碰到问题及PTA提交列表情况说明。

 

(1) 错误点 编译错误

34行 忘记加分号。编译中定义变量需要加分号

解决方法:在第3和第4行后加分号。

第一次调试结果

 

(1) 错误点 段错误

数组越界问题(没懂,自己在想)

2)书籍名称是字符串,字符串的输入要用getchar(); ,scanf只能输入一个单词或字母

解决方法:第1116行添加getchar();

 第二次的调试结果

 

输出打错,正确格式%.2lf

第三次调试结果:

输出的格式有误,导致答案错误

Double 要用%f输出,字符串要用%s输出

12行,循环结束条件错误,数组下标不能到n,所以i不可以等于n。循环条件出错,计算结果就会出错

解决方法:第12行,将i<=n改为i<n; 

第四次调试: 

仔细检查后发现,输出格式与题目不符,导致格式错误

解决方法:在%.2lf”后加一个空格

最后调试结果

 

7-3

找出总分最高的学生

给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。

1. 本题PTA提交列表

2、设计思路:

用第一个与后面的依次比较,一旦遇到总和大于第一个,则令max为其的下标;然后把这个数再与后面的比较,再遇到比这个数大的,则下标再次改变,这样找出成绩最高的下标

  3.本题调试过程碰到问题及PTA提交列表情况说明。

 (1) 错误点:答案错误

①在找成绩最高的人中,思路错误。如果从i=0,开始循环,则一旦遇到sum[i]>sum[i+1],就会输出较大的一个,没有实现找出所有人中成绩最高的一个,所以if的判断条件也不正确

②不能把输出放在循环内部,这样的会使结果有多个输出,与题意不符

解决方法:

①循环的初始条件改为从i=1开始,新定义一个max,并令其为0;把判断条件改为sum[max]<sum[i],满足则max=i;

②把输出放在循环外部

第一次调试结果:

 

 (1)错误点:答案错误

输出中,最后一个总和忘记修改对应数据

解决方法:result改为sum[max]

第二次调试结果:

(1)错误点:最长字符串出现错误

题目要求学号5个数字组成的字符串,这里定义成整型,所以错了

解决方法:学号用char定义为字符串,char num

输出改为%s(字符串)

第三次调试结果:

  (1)错误点:段错误

与上一次类同,题目要求学号5个数字组成的字符串,应该定义一个数组,没有数组,只能表示一个字符

解决方法:将其定义为数组char num[6]

最后调试正确结果:

 

7-4 通讯录的录入与显示

通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。 本题要求编写程序,录入N条记录,并且根据要求显示任意某条记录。

1. 本题PTA提交列表

2. 设计思路

用循环输入基本信息,再输入要查询的信息条数,利用循环,在循环中输入编号,如果编号比录入的信息条数多则输出Not Found,否则输出对应编号的基本信息。

3.本题调试过程碰到问题及PTA提交列表情况说明。

 

二、同学代码结对互评

 陈冰艳的代码

 

我的代码

 

不同点:

我和同学的代码思路基本一致,不同点在于

①我定义的的结构体变量是数组s[10],同学直接定义了一个变量名,然后都有用定义的结构体变量引用其中的元素

②她的代码将循环变量i的初始值定义为1,我将循环变量初始值定义为i=0,但本质上是一样的。

 

三、截图本周题目集的PTA最后排名

 

四、本周学习总结

1.你学会了什么?

①结构体的变量定义和初始化

可以单独定义也可以混合定义;

结构的嵌套定义中必须先定义成员的结构类型,再定义主结构类型。

②结构体变量的引用

格式为     结构体变量名.结构体成员名;

结构体变量可以整体赋值。

③结构体数组的使用

2、本周的内容,你还不会什么?

①结构体指针变量的使用

②利用结构体构成链表

③不会的题:PTA   7-5

 

 

 

链表

一、PTA实验作业

7-12 单向链表4

定义单向链表:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序并输出。

1. 本题PTA提交列表

2. 设计思路

利用头插法,逆序输出

3、本题调试过程碰到问题及PTA提交列表情况说明

 链表一共4题,我只会做这一题,所以只写了这一题

 二、同学代码结对互评

7-12

陈冰艳的代码

 

我的代码

不同点:

同学的代码用while循环判断,而我用的是for循环;

同学在循环内部实行动态分配空间,我在循环外部独立实现动态分配空间

其他的思路一致

我更喜欢同学的代码,用while循环让结构更清晰

三、截图本周题目集的PTA最后排名

 

四、本周学习总结

1.你学会了什么?

①动态分配存储空间,创建结点

②用结构嵌套定义单向链表结点数据

 2、本周的内容,你还不会什么?

链表的删除结点

不会的题:PTA  7-10、7-11、7-13

 

 

 

 

 

以上是关于结构体和链表的主要内容,如果未能解决你的问题,请参考以下文章

结构体和链表

结构体和链表

结构体和链表

结构体和链表

结构体和链表

结构体和链表