1.本章学习总结
1.1思维导图
1.2本章学习体会及代码量学习体会#
1.2.1 学习体会
- 本周学习为入门课程,我了解了c语言的大致编程规则和方法,对于所学内容即思维导图,能够基本理解并运用;
- 自我要求的编程量需要提高,熟能生巧,做好预习和复习,让以后的学习更加得心应手;
- 但仍缺少对代码更深层次的领会,比如浮点数补精度、switch的合理使用,由于不够熟练,经常会忘记一些细节像输入要加上&,语句后要加分号,变量命名和语句不规范等,在接下来的学习会更严格要求自己,多注重细节。
1.2.2 代码累计##
2.PTA总分#
2.1PTA中顺序结构、分支结构的排名得分##
2.2 我的总分:##
PTA总分:225
3.PTA实验作业#
3.1 PTA题目1##
编写程序,根据活动经费和U盘单价预估可购买U盘的最大数量。
3.1.1 算法分析###
1.定义活动经费money,U盘单价price和最大数量number;
2.输入money 和 price;
3.通过公式money除以prise计算得出数量number;
4.由于浮点误差需要在计算number时补上精度0.000001;
5.输出number;
3.1.2 代码截图###
3.1.3 测试数据###
3.1.4 PTA提交列表及说明###
- Q1:用求余后去掉余数的方法计算U盘整数,只是部分正确
- A1:不清楚哪里出现错误而转换浮点定义和整型定义进行修改程序
- Q2:不断地修改求值公式造成编译错误
- A2:不注意细节像输入中没加&,新添加的语句没有加分号
- Q3:知道是精度误差后尝试补上精度造成答案错误
- A3:反复针对U盘最大数量测试答案,最后在同学的帮助下补上正确精度
3.2 PTA题目2##
根据输入的三角形的三条边a、b、c,计算并输出面积和周长。
3.2.1 算法分析###
1.定义三条边a,b,c和面积area,周长perimeter
2.通过if-else语句判断三条边能否构成三角形
3.如果能,则进行计算面积和周长并输出;如果不能,则输出"These sides do not correspond to a valid triangle"
3.2.2 代码截图###
3.2.3 测试数据###
3.2.4 PTA提交列表及说明###
- Q1:不注重细节造成的编译错误
- A1:原因是输入里没加&
- Q2:部分正确和答案错误,通过转换各种语句寻求答案
- A2:做这道题时还不懂用dev-C++调试,不知道什么原因,以为是语句错误,修改成i多个if语句,多分支语句,else内再嵌套if-else,连浮点数都补上精度,答案就是不全对,后来通过故意把面积公式改成s=a,发现得分仍是8分,知道了测试点有4个是不能构成三角形的,而错误也出现在能构成三角形的数据中,但反复检查都判断不出问题
- Q3:同学提醒我,在scanf中输入三条边时不是用空格隔开,而是用逗号隔开
- A3:简单的题目,一个小小的错误没有注意,最后越想越深,以后要多注重代码规范,语句格式,不能被小问题造成这样的错误
3.3 PTA题目3##
计算某年某月某日是该年中的第几天。
3.3.1 算法分析###
1.定义年月日分别为year,month,day,number为到上个月的天数,total为第几天,add为附加天数;
2.输入年月日,通过switch语句对month判断其到上个月的天数;
3.通过if-else语句判断该年是否为闰年,确认add值;
4.通过if判断大于2月的月份需加上add;
5.把number加上day赋值给total,即第几天;
6.输出total的值。
3.3.2 代码截图###
3.3.3 测试数据###
3.3.4 PTA提交列表及说明###
- Q1:针对不同年份和月份需要分别进行不同的天数计算
- A1:通过switch语句区分不同月份的不同天数,再用if语句判断闰年,最后求和,得出结果
- Q2:确认公式正确后答案仍部分正确
- A2:通过devC++调试发现switch语句中天数的加法计算出现失误,进行改正
- Q3:代入数据不断测试确认程序无误
- A3:通过课本和百度查询关于switch语句的格式和用法,确认代码并加深印象