结构体和链表实验报告

一、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四则运算

posted on 2018-01-20 11:33  liangyuhang  阅读(475)  评论(0编辑  收藏  举报