这个作业要求在哪里 | http://t.csdn.cn/XWRlO |
---|---|
我在这个课程的目标是 | 正确使用结构,掌握结构数组和结构指针的基本操作 |
这个作业在那个具体方面帮助我实现目标 | 结构的相关理论知识,结构数组和结构指针的易错点及解决办法 |
参考文献 | 《C语言程序设计教程》、百度 |
1.PTA实验作业
1.1节约有理
小明准备考研,要买一些书,虽然每个书店都有他想买的所有图书,但不同书店的不同书籍打的折扣可能各不相同,因此价格也可能各不相同。因为资金所限,小明想知道不同书店价格最便宜的图书各有多少本,以便节约资金。
1.1.1 数据处理
1.数据表达
定义了局部控制变量整型变量i、j,结构体内定义图书名为字符型数组,价格为双精度浮点型数组,将每家店有多少种最低价格的书定义为整型变量cnt。自定义函数首先外循环使用for循环结构将每种书价格在不同店之间比较大小,计算cnt。定义处先用k数组暂时来记录最低店铺的下标,进行赋初值,默认第一家店为最低。使用if选择结构找到最低价格。内循环处的k数组里面记录的是最低价格店铺的下标。再并列一个外循环,根据cnt大小降序排序整个shop数组,内部再次运用选择结构和循环结构的嵌套,当cnt相等时,根据店铺名称ASCII码升序排序。使用主函数,利用while结构运行t组数据,for循环先将cnt默认为0,多组for循环结构镶嵌,后运行条件为第m家店的第n本书价格,最后引用上述的自定义函数结构中。
2.数据处理
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 |
---|---|
3 | xinhuashop 2 |
3 3 | kehaishop 1 |
xiwangshop kehaishop | xiwangshop 1 |
xinhuashop | xhsd 3 |
11.1 22.2 33.3 | hytss 2 |
11.2 22.2 33.2 | xxsw 2 |
10.9 22.3 33.1 | khsd 1 |
5 5 | xwsd 0 |
xwsd khsd xhsd xxsw hytss | xhsd 3 |
1 2 3 4 5 | xxsw 2 |
1.2 2.1 2.7 4.1 4.8 | khsd 1 |
0.8 1.9 3.1 3.8 5.2 | xwsd 0 |
0.9 1.95 2.65 3.8 5.1、 | |
0.9 1.95 2.65 3.8 5.1 | |
4 5 | |
xwsd khsd xhsd xxsw | |
1 2 3 4 5 | |
1.2 2.1 2.7 4.1 4.8 | |
0.8 1.9 3.1 3.8 5.2 | |
0.9 1.95 2.65 3.8 5.1 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:结构体内部定义数组的长度过小,导致赋值长度越界,询问专业前辈后将数组长度调到对题目适宜范围
2.编译错误:主函数内多组循环结构的镶嵌混乱,自己百度查找了部分循环嵌套的资料后并在同学的帮助下,一一改正
3.编译错误:自定义函数的内部存在逻辑错误并k数组内某处存在常量表达式不当,几天自己百度查阅了其他相关题目的解题方法,在专业前辈的帮助下再次手写罗列题目与自己代码的逻辑,通过他人帮助后将代码编译依题改正至正确
1.2结构体数组实现工资数据的存放与输出
用结构体存放下表中的数据,然后输出每人的姓名和实发工资(基本工资+浮动工资-支出)
1.2.1 数据处理
1.数据表达
结构体定义基本工资、浮动工资和支出为双精度浮点型变量,并将姓名定义为字符型数组。主函数定义了实发工资为双精度浮点型。运用for循环进行实发工资的相关计算,并进行输入、输出。
2.数据处理
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 |
---|---|
赵 240 400 75 | 赵 565.00 |
钱 360 120 50 | 钱 430.00 |
孙 560 0 80 | 孙 480.00 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.编译错误:结构体结束后的分号没有编译,自己翻阅《C语言程序设计教程》后添加上去
2.编译错误:for循环结构内关于图书名、基本工资、浮动工资、支出的表达编译错误,询问同学后将相关代码改为“ s[i]. ”加上其他,运行正常
3.答案错误:for循环结构的条件处条件表达式为“i<n",导致输出正确结果后总存在”0.00“的循环后缀,自己根据整个代码一一与题目条件对应后,尝试将其改为”i<3",答案修改正确
2.代码互评
(1)同学的截图
自己的截图
1.王同学在主函数处定义了多个数组,且存储各个书籍提供的最低价格书目的数量也有定义为整型的amount数组,自己在主函数仅存在t组数据,二者因代码而异,但王同学的编译思路值得自己去学习
2.王同学和自己均在主函数内存在while和for循环的嵌套,但王同学的全部运算都在主函数中,循环结构之间编译的很繁琐,自己将主函数的一部分运算转入自定义函数中,自己的代码整体布局更有层次,但自定义函数内更复杂,不如王同学相关一维数组、二维数组运用得当,需要学习
3.王同学在循环结构与选择结构的嵌套中运行的相对复杂,外循环、内循环步骤较多,自己在自定义函数内部更加嵌套的少一些,步骤有所简化
4.二者一些编译细节因代码而异,但是王同学的编译条理值得自己参考和尝试
(2)同学的截图
自己的截图
1.曾同学将“基本工资+浮动工资-支出”在输出函数处计算,自己将三者的计算关系在循环结构处体现,自己的更严谨,曾同学的整体框架更简洁,计算的摆放位置自己没有尝试过,值得去学习
2.曾同学直接将实发工资定义为单精度浮点型的数组,自己将"基本工资“、“浮动工资”、“支出”进行了单独的定义,为双精度浮点型变量,二者总体思路一样,因代码而异
3.曾同学在函数体处存在“struct man s[n]"引用,自己则没有,曾同学的解题值得借鉴
4.自己在函数体处将实发工资单独定义为双精度浮点型变量,曾同学则没有,自己在输出函数处更简洁,但是总体操作也更繁琐
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简历 | 目前比较困惑的问题 |
---|---|---|---|---|
第一周 | 14h | 75 | 计算机系统组成及工作原理,进位转换,机器数 | 进位计数制的转换不熟练 |
第二周 | 10h | 169 | 基本数据类型,运算符与表达式,基本输入输出 | 优先级顺序反应较迟钝 |
第三周 | 18h | 150 | 选择结构程序设计(if 、switch语句) | else容易匹配混乱 |
第四周 | 16h | 164 | 循环结构程序设计(while、do-while、for语句),循环嵌套 | 循环嵌套在编译中没有熟练掌握 |
第五周 | 20h | 188 | 一维数组 | 在使用memset函数、memcpy函数来赋值没有理解 |
第六周 | 18h | 225 | 二维数组,字符串与数组 | 给数组变量赋值,数组综合应用不会 |
第七周 | 12h | 120 | 函数的定义与调用,变量的作用域和生存期 | 函数调用的数据类型不兼容,函数内部定义函数容易嵌套 |
第八周 | 20h | 240 | 指针变量,指针与数组,指针与字符串,指针与动态内存分配,多级指针 | 无法熟练掌握指针的正确使用,例如容易造成数组越界操作等 |
第九周 | 14h | 302 | 复杂数据类型 | 结构数组、结构指针设计性编译没有掌握 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
1.在这周的网课中,自己关于结构体相关学习理论内容还行,但对于老师未讲解完 需自学的部分掌握程度不高,需要多去正确解读代码,多动手敲出来
2.设计性代码编译不能够灵活处理,自主分析的能力差,多自己掌握基本功,可以和身边的会做的朋友请教
3.本学期课程进入尾声,多科作业任务量加重,要合理协调时间并执行
4.一定要自己动手敲代码,不然一直学不会,允许碰壁
5.关于一些自己遇到的问题一定要自己主动的去思考、查询,然后再寻求他人帮助
6.可以查询其他人分享的题目,但是自己一定要像解读自己遇到的题去尽量读懂每一个代码步骤,加深印象