• C语言I博客作业06


    作业头

    这个作业属于哪个课程 C语言程序设计II
    这个作业要求在哪里 <作业的链接>
    我在这个课程的目标是 熟练使用多分支结构switch语句
    这个作业在那个具体方面帮助我实现目标 pta作业的严格要求,提高逻辑思考能力。
    参考文献 《C语言程序与设计》、《C Primer Plus》、百度
    学号 20209038

    1.PTA实验作业(20分/题)

    • 1.1 7-3 计算天数

    输入格式:
    输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
    输出格式:
    在一行输出日期是该年中的第几天。

    1.1.1 数据处理

    • 数据表达
      定义year, month, day等整型变量
    • 数据处理:使用switch语句和if语句,还有表达式sum = day + sum;先用switch语句列出来每月基础的天数再通过表达式sum = day + sum;加上这月日子的天数获得此日期的是为本年的第几天。再用if语句对于闰年这种特殊情况进行处理。

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    2009/03/02 61 平年测试
    2000/03/02 62 闰年测试

    1.1.4 PTA提交列表及说明

    提交列表说明:

    1.编译错误。万恶的输入法,打代码总要中英转换,但是转换容易忘记导致符号使用中文符号。这个又是容易忽略的,而且用肉眼很难观察出来的错误。
    2.部分正确。if语句条件没有分具体。忽略了能被400整除的情况。
    3.编译错误。未来方便观察符号错误把代码复制到了VS2019来检查,检查完后,搬过来忘记把scanf_s()改成scanf().导致编译错误。
    4.答案正确。这道题还是得亏,周宽大佬给予提示。才有着清晰的思路,使用pta错误次数不多也没出现什么大的错误。
    

    1.2 7-4 前天是哪天

    本题目要求读入年、月、日,然后判断前天日期。

    输入格式:
    在一行中输入年、月、日。(日期为有效日期)
    输出格式:
    输出前天日期,格式形如2020-10-16

    1.2.1 数据处理

    • 数据表达:定义了y,m,d,sum整数型变量
    • 数据处理:基本思路与计算天数相同但有些变化,先用switch语句把会退后2天后可能出现的基础日数列出来,再用if语句细化分类,最后得到结果。其中if细化分类的时候逻辑实录一定要清晰明了,不然容易分着分着把自己弄糊涂了。

    1.2.2 实验代码截图

    1.2.3

    输入数据 输出数据 说明
    2020 10 16 2020-10-14 day大于2
    2020 1 2 2019-12-31 day小于2,month等于1
    2020 3 2 2020-2-29 day小于2并且month等于3 year为闰年
    2019 3 2 2019-2-28 day小于2并且month大于2 year为非闰年

    1.2.4 PTA提交列表及说明

    提交列表说明:

    1.部分正确。这道题好难啊,if分条件容易漏,改了好几次。
    - 忽略月数为3当日数小于2的情况,而且为闰年的可能
    - 忽略日子小于2而且月数等于3而且非闰年情况也是需要细分的。
    3.编译错误。多次部分正确,改得有点心急了,导致漏符号。
    2.答案正确。大体思路和计算天数类似,但又有变化。而且if分类难度也加大了。
    

    2.代码互评(5分)

    • 同学代码截图
      同学1的代码

    同学2的代码

    • 自己截图

    • 比较:

    • 第一位同学运用了数组,代码相对于我们的代码简洁很多很多。

    • 第二位同学运用了switch语句和if语句,其中还有switch语句中嵌套if语句。思维非常严谨细致,但是思路略显示复杂。

    • 我自己的代码相对与第二位同学思路简单一些,个人认为我的代码会比第二位同学的代码更容易理解一些。但从简洁程度还是不如第一位同学。

    3.学习总结(15分)

    3.1 学习进度条(5分)

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    11/23——11/30 14h 538 switch语句 有很多题单纯用switch代替if语句很难,没有思路

    3.2 累积代码行和博客字数(5分)

    时间 博客字数(字符) 代码行数
    第一周 772 386
    第二周 1108 578
    第三周 3245 643
    第四周 3503 430
    第五周 3943 675
    第六周 3736 538

    3.3 学习内容总结和感悟(5分)

    3.3.1 学习内容总结

    3.3.2 学习感悟

    感悟:

    • 1.这周的题目对于逻辑思考能力比较高。有好的思路那么代码就会相对简洁很多,如果没有好的思路那么代码就会非常繁杂。
    • 2.要平时有把事情分解分布安排的习惯。就好如把大象放进冰箱里。刚开始的时候我们想到的步骤和思路都很繁杂从而感到无从下手,但是经过提炼后就会很清晰的把着给问题分为3步来解决,这样就清晰了很多。
    • 3.感觉这次作业比较友好,题目难度大体上是递增的。而且后面一道题目解法思路是在前面一道题目基础上的。有种前面题目就相当与后面一道题的提示。降低了难度。
  • 相关阅读:
    ACE admin 后台管理框架
    HTML5 respond.js 解决IE6~8的响应式布局问题
    JS/JQ常见兼容辅助插件
    DEDECMS之十 修改织梦链和文章的默认来源及作者
    怎么在网站嵌入百度搜索框
    【python进阶】深入理解系统进程1
    BugkuCTF SQL注入1
    BugkuCTF 域名解析
    BugkuCTF sql注入
    BugkuCTF web3
  • 原文地址:https://www.cnblogs.com/xianqipiaopiaotangxiaoyi/p/14060204.html
Copyright © 2020-2023  润新知