• C语言I博客作业06


    问题 答案
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9826
    我在这个课程的目标是 熟悉多分支结构、字符型数据类型和逻辑运算符
    这个作业在那个具体方面帮助我实现目标 用C语言编写程序时用到多分支结构,逻辑运算符等
    参考文献 《C语言程序设计》

    一、PTA实验作业

    1.1计算火车运行时间

    题目内容描述:本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
    输入格式:输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内
    输出格式:在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。

    1.1.1数据处理

    数据表达:先用int定义了四个整型变量h、m、a、b。hh和mm分别用来表示两位小时数和两位分钟数。a和b分别用来表示火车的出发时间和到达时间。
    数据处理:需要注意出发和到达是在同一天内,通过计算h=(b/100)-(a/100)可以得到火车运行时间的两位小时数,通过计算m=(b%100)-(a%100)可以得到两位分钟数。还运用了if语句进行判断,当m<0(即出发时间的两位分钟数小于到达时间的两位分钟数),这时候要执行h=h-1和m=60+m(即将一个小时换算成60分钟,使输出的两位分钟数为正 )。由于题目给出的输出格式为hh:mm,所以调用printf()函数时格式控制为%02d:%02d才能输出正确答案。
    

    1.1.2实验代码截图

    1.1.3造测试数据

    输入数据 输出数据 说明
    1201 1530 03:29 示例
    0800 1300 05:00 整点出发,整点到达
    0000 2359 23:59 能用的最久时间
    0537 1109 05:32 上午出发,上午到达

    1.1.4PTA提交列表及说明

    答案错误:调用printf()函数输出时,格式控制%和d中间没加02,导致输出的小时和分钟没有取成两位整数。
    

    1.2输出闰年

    题目内容描述:输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。
    输入格式:输入在一行中给出21世纪的某个截止年份
    输出格式:逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。

    1.2.1 数据处理

    数据表达:用int定义了两个整型变量year、i。置i为2001。year指输入的21世纪的某个截止年份。
    数据处理: 题目中给出了输出的三种情况。运用if-else语句进行判断,如果输入的年份小于2001或大于2100(即非21世纪的年份)输出"Invalid year!"。否则(即输入年份属于21世纪),运用for语句执行循环,当输入年份为闰年时(此时判断的逻辑关系式为(i%4==0&&i%100!=0)||(i%400==0)),输出21世纪中截止该年份以来的所有闰年年份。第三种情况我也运用了if语句,当输入年份大于2000且小于2003时,不存在任何闰年。
    

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    2000 Invalid year! 不是21世纪的年份
    2003 None 不存在任何闰年
    2020 2004 2008 2012 2016 2020 是21世纪年份,且存在闰年

    1.2.4 PTA提交列表及说明

    编译错误:在调用if语句时,没有在(i%4==0&&i%100!=0)||(i%400==0)两边加上括号,导致编译错误。
    

    二、代码互评

    2.1.1题目截图

    2.1.2自己代码截图

    同学代码截图

    相同之处:都设置了六个变量(变量名称不同但作用相同),都运用了for语句执行循环。
    不同之处:她运用了两个if语句来分别判断输入的成绩等于0和大于等于60两种情况,分别执行不同的语句;我运用了if-else语句来判断两种情况,分别调用printf()函数输出不同的结果。
    

    2.2.1题目截图

    2.2.2自己代码截图

    同学代码截图

    相同之处:都运用if-else语句进行判断,如果输入的年份小于2001或大于2100(即非21世纪的年份)输出"Invalid year!"
    不同之处:1.我在调用scanf()函数之前就用int定义了i,并置i为2001;她在调用for语句时使用int定义i。
    2.我使用if语句判断,当输入年份大于2000且小于2003时(此时的逻辑关系式为year>2000&&year<=2003),不存在闰年;她使用if语句判断当count的累加次数为0(即count==0)时,不存在闰年。
    

    三、学习总结

    3.1 学习进度条

    这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第一周 6小时 29行 对C语言、markdown语法,编程有了初步的认识 对编程一窍不通,只会照着书上打
    第二周 8小时 19行 学会如何提问,安装MinGW-w64并用它编译C程序 markdown语法掌握不熟练
    第三周 10小时 96行 关系运算、if-else语句、格式化输入语句scanf(),以及常用的数学库函数 对编程中各大语句的运用不熟悉
    第四周 13小时 93行 for循环语句实现指定次数的循环程序设计 运用for语句时经常犯很多错误
    第五周 10小时 161行 用C语言编写程序 对编写函数和调用函数还有很多不熟悉
    第六周 12小时 168行 多分支结构、字符型数据类型和逻辑运算符 对各运算符的优先级和结合性,多分支结构不熟悉

    3.2 累积代码行和博客字数

    3.3学习内容总结

    3.4学习感悟

    每周都会学习新的知识点,新的知识点总是有一些难以理解的地方.这时候把新的知识和以前学过的旧知识放在一起整理归纳,不仅可以温习巩固旧知识,而且可以使新知识更加易于理解.例如这周学习的else-if语句和之前学过的嵌套的if-else语句都可以实现多分支结构.但由于else-if语句的逻辑结构更清晰,应用范围更广;这周学习的逻辑运算符和之前学习的算数运算符,关系运算符等都是运算符的种类.运算符的优先级和结合性能决定表达式的计算顺序;调用函数处理整形数据和浮点型数据的输入输出时,有专门的格式控制说明%d和%lf,字符型数据的格式控制说明为%c.
  • 相关阅读:
    java arraylist int[] 转换
    nginx installl
    "segmentation fault " when "import tensorflow as tf"
    preprocessing MinMaxScaler
    java对集合的操作,jxl操作excel
    IPython安装过程 @win7 64bit
    JavaScript学习——创建对象
    JavaScript学习——理解对象
    JavaScript学习——Math对象
    JavaScript学习——Global对象
  • 原文地址:https://www.cnblogs.com/shenxinglou/p/11775314.html
Copyright © 2020-2023  润新知