结构体一,PTA 实验作业
7-1
给定 n 本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价.
1. 本题 PTA 提交列表
2. 设计思路
在循环中对书籍价格进行判断,令 i=0,则 max=s[i],min=s[i];再进行判断如果 max.prices[i].price,则 min=s[i];
最后分别输出价格最高和低的书籍的名称和价格.
3. 本题调试过程碰到问题及 PTA 提交列表情况说明.
(1) 错误点 编译错误
第
3
,
4
行 忘记加分号.编译中定义变量需要加分号
解决方法:在第
3
和第
4
行后加分号.
第一次调试结果
(1) 错误点 段错误
数组越界问题(没懂,自己在想)
(
2
)书籍名称是字符串,字符串的输入要用
getchar(); ,scanf
只能输入一个单词或字母
解决方法:第
11
和
16
行添加
getchar();
第二次的调试结果
输出打错,正确格式 %.2lf
第三次调试结果:
输出的格式有误,导致答案错误
Double
要用
%f
输出,字符串要用
%s
输出
第
12
行,循环结束条件错误,数组下标不能到
n,
所以
i
不可以等于
n
.循环条件出错,计算结果就会出错
解决方法:第
12
行,将
i<=n
改为
i
第四次调试:
仔细检查后发现,输出格式与题目不符,导致格式错误
解决方法:在 "%.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]
②把输出放在循环外部
第一次调试结果:
(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
来源: http://www.bubuko.com/infodetail-2468340.html