结构体和链表实验报告
一、PTA实验作业
题目1:7-2 通讯录排序
1. 本题PTA提交列表
2. 设计思路
题目难点在于输入n个朋友信息后还要将这些朋友信息按照年龄从大到小排序。所以可通过strcmp函数对比生日年月日的大小,再通过冒泡排序法,将数据进行排序,按顺序输出后得出题目所求。
流程图如下
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
忽略了结尾不能有多余空格的要求,添加一个if else语句解决问题。
题目2:7-7 时间换算
1. 本题PTA提交列表
2. 设计思路
题目难点在于对时,分,秒的换算。我采取将要加上的秒数先加在秒上。通过判断秒数是否大于60,若大于,将秒数除以60后的数值加在分数上,在将秒数取余60。之后的分钟转换为小时也以此类推。最后将得出的小时数取余24.得出答案。
流程图如下
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
思路明确,没有太大问题出现。
题目3:7-12 单向链表4
1. 本题PTA提交列表
2. 设计思路
采用头插法即可实现逆向输出
流程图如下
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
采用头插法,依次输出,没有出现太大问题。
二、同学代码结对互评
互评题目7-7时间转换
1.同学互评照片
我的代码
谢晔晖同学的代码
不同点1:我的代码是将秒转化为分,分转化为小时。
晔晖同学的代码是将所有数据都转化为秒再转化。
相同点:转化方法相似。
我更喜欢我的代码风格。
三、截图本周题目集的PTA最后排名。
四、本周学习总结
1.你学会了什么?
①结构体定义格式
struct 结构名{
类型名 结构成员们1:
类型名 结构成员们2:
类型名 结构成员们3:
}
②定义结构体
struct 结构名 结构变量名表
③5个函数:malloc calloc free realloc,sizeof
①动态存储分配函数malloc()
申请成功 返回指向所分配存储空间的起始地址的指针,不成功则返回NULL。
注意,在malloc()具体使用中,可将返回值强制转换成特定的指针类型,再赋值给一个指针。
同时可利用sizeof计算存储块大小。
例如:如下格式
if((p=(类型名 *)malloc(sizeof(变量名)))==NULL)
{
printf("error");
exit(1);
}
②计数动态存储分配函数calloc()
与malloc()相似,不同点是:malloc()对所分配的存储块不做任何事情,calloc()对整个区域进行初始化(0)。
③动态存储释放函数free()
功能:释放由动态存储分配函数申请到的整块内存空间。
④分配调整函数realloc()
功能:更改以前的存储分配。
⑤sizeof函数
sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位)
2.本周的内容,你还不会什么?
7-5四则运算
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步