1.本章学习总结

1.1 思维导图

1.2 本章学习体会及代码量学习体会

1.2.1 学习体会

在暑假已经有初步接触c语言,所以在学习c语言的开始会比较轻松,但仍然解题时候步骤太过于繁琐,简单的题目复杂化,对编程的优化的处理能力还需提升。希望能在老师的课上了解更多有趣的关于编程的网站和知识,比如掌握驼峰命名法和老师安利的www.easyx.cn

1.2.2 代码累计

2.PTA总分

2.1截图PTA中顺序结构、分支结构的排名得分


2.2 我的总分:

顺序结构:100
分支结构:125
总分:225

3.PTA实验作业

3.1 PTA题目1

根据活动经费和U盘单价预估可购买U盘的最大数量。

3.1.1 算法分析

1.定义活动经费money,u盘单价price,购买数目number。
2.输入活动经费和u盘单价。
3.用由活动经费除去u盘单价可得可购买数量,但由于浮点数的误差,则在数量加上0.00001,即money/prince=number+0.00001。
4.输出所求得的u盘购买数量,即number。

3.1.2 代码截图

3.1.3 测试数据

3.1.4 PTA提交列表及说明


注明:此题目一直在dvec++上面测试不出来,当时一直没有提交,后来老师点破才明白。

  • Q1:输出值与题目所给的输出样例不符合,按照第一个样例输入,输出结果永远少1。
  • A1:定义变量方面和输入的语法没有错漏和失误,推测是输出出现问题,可是无论怎么改都是错误的。
  • Q2:没有对浮点数误差知识点的了解,导致问题无法解决。直接用money/price=number,故答案一直不正确。
  • A2:最后在老师课上了解了浮点数的误差,才知道浮点数误差的知识点,才明白money/price=number+0.000001才对。
  • 总结:浮点数判断相等有误差,需要设定一个阈值解决误差问题。

3.2PTA题目2

根据输入的三角形的三条边a、b、c,计算并输出面积和周长。

3.2.1 算法分析

1.程序开始放入math.h的头文件,后续计算有需要。
2.定义三角形的三条边,分别设为a,b,c,s。
3.输入a,b,c。
4.求出s。
5.使用if else分支结构,判断如果a+b>c,a+c>b,b+c>a是否成立。
6.如果成立,则通过sqrt(s(s-a)(s-b)*(s-c))求出面积,用a+b+c求出周长。
7.如果不成立,则输出These sides do not correspond to a valid triangle。

3.2.2代码截图

3.2.3 测试数据

3.2.4 PTA提交列表及说明

  • Q1:明明按照三角形的两条边之和大于第三边进行编程,为什么还是一直错误?
  • A1:原来是任意的两条边之和大于第三边,情况考虑不周全,所以总是部分正确,有情况是错误的。
  • Q2:为什么考虑了任意的条件,反而变成了编译错误?
  • A2:当时对逻辑符号没有了解,将逻辑运算的和用‘,’来处理,原来是要用‘&&’,知道之后追悔莫及。

3.3PTA题目3

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

3.2.1算法分析

1.定义年(year)、月(mouth)、日(day)。
2.用if-else分支结构判断输入年份是否是闰年。
3.如果是闰年,进入switch case运算,计算出日期。
4.如果不是闰年,也一样进入switch case运算,但运算的数值不同。
5.求出日期是该年的第几天,并输出。

3.2.2代码截图

修改前

修改后

注:该优化参考同学思路,如有更好的优化方式,谢谢评论。

3.3.3测试数据

3.3.4提交列表及说明

  • Q1:一开始不清楚到底是switch day还是mouth,使代码在编译器上混乱,并且得不到正确答案。
  • A1:认真看清楚题目,分析算法,得知switch的是mouth,终于让程序编译成功
  • Q2:开始只知道以为的switch case 然后输出,使得整个代码看上去烦乱和复杂。
  • A2:后来认真分析,并在同学的帮助和讨论下,得到修改后的代码,也许还不够简洁明了,希望有更好的方案的同学能够通过评论,给我点建议。

4.点评同学博客

one

two

three

four

five

C博客作业01--分支、顺序结构的更多相关文章

  1. C博客作业01——分支,顺序结构

    C博客作业01--分支,顺序结构 0.展示PTA总分 1本章学习内容 1.1学习内容总结 1)格式化输出函数printf(),scanf(). 它是什么? 对于初学者而言,一开始了解接触它们,只是被硬 ...

  2. C博客作业01——分支、顺序结构

    1.本章学习总结 1.1思维导图 本章学习体会及代码量学习体会 1.2.1学习体会 在暑假的时候就有加入新生学习群,对C语言有一定的基础,所以这周的学习相对轻松,但一些细节方面的知识并不是很了解.在这 ...

  3. c语言博客作业01—分支、顺序结构

    1.本章学习总结  1.1 思维导图  1.2本章学习体会及代码量学习体会  1.2.1学习体会 这周 对c语言的学习 明显与其他同学相比较有些滞后,觉得很大原因是暑假没有看教学视频,课前没有预习课本 ...

  4. C博客作业01--分支,顺序结构

    本章学习总结(2分) 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周初次接触C语言,一开始难度较大,很多代码都看不懂,书里面的章节要看很多遍.开始编写代码时也遇到很多困难 ...

  5. C博客作业01--分支顺序结构

    1.展示PTA总分 2.本章学习总结 ①C语言数据类型 ② if-else语句 if (条件) { 语句A; } else { 语句B; } 在if (条件)后不加":" 要用&q ...

  6. C语言I博客作业01

    C语言I博客作业01 作业1 这个作业属于哪个课程? C语言程序设计I 这个作业要求在哪里? https://edu.cnblogs.com/campus/zswxy/CST2019-2/homewo ...

  7. C语言l博客作业01

    2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样?(2分) 计算机科学与技术是国家一级学科,下设信息安全,软件工程,计算机软件与理论等专业,主要培养符合教育部门实际需要的计算机教学及应用管理 ...

  8. C语言II博客作业01

    这个作业属于那个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-4 这个作业要求在哪里 https://edu.cnblogs.com/campus/zs ...

  9. c博客作业01——顺序 分支结构

    本章学习总结 1.1 学习内容总结 ·学习switch分支的使用,switch后加括号(),括号内填一个变量或字符 如 switch (a) { case 2: case 3: default: } ...

  10. DS博客作业01—日期抽象数据类型设计与实现

    1.本章学习总结 1.1 思维导图 1.2学习体会 开学就来了个大作业,还要求用的是c++语法,作为一个只听过没学过的未知语法,靠着CSDN和寝室大佬的帮助下渐渐地了解了一些c++的使用,现在也可以使 ...

随机推荐

  1. confd+etcd实现高可用自动发现

    Confd是什么 Confd是一个轻量级的配置管理工具. 通过查询后端存储,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动reload. 对应的后端存储可以是etcd,redi ...

  2. SLAM+语音机器人DIY系列:(四)差分底盘设计——4.底盘ROS驱动开发

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  3. Hibernate框架笔记02_主键生成策略_一级缓存_事务管理

    目录 0. 结构图 1. 持久化类的编写规则 1.1 持久化和持久化类 1.2 持久化类的编写规则 2. 主键生成策略 2.1 主键的分类 2.2 主键生成策略 3. 持久化类的三种状态[了解] 3. ...

  4. Eclipse安装hibernate插件

    进入hibernate官网下载 http://tools.jboss.org/downloads/ 选择合适版本 下载完成后在eclipse->help->intall new softe ...

  5. 第十二课 CSS基本选择器 css学习2

    基础选择器一.标签选择器(元素选择器)标签选择器是指用HTML标签名称作为选择器,按标签名称分类语法:标签名{属性1:属性值1;属性2:属性值2;属性3:属性值3;} 二.类选择器1.类选择器使用&q ...

  6. 小tips:你不知道的 npm init

    前言 在现代新建一个 JS 相关的项目往往都是从 package.json 文件开始的,不过这个文件里需要的字段实在是太多了,正常人都记不住,所以 npm 官方提供了 npm init 命令帮助我们快 ...

  7. 使用Boostrap框架写一个登录\注册界面

    Bootstrap是一个Web前端开发框架,使用它提供的css.js文件可以简单.方便地美化HTML控件.一般情况下,对控件的美化需要我们自己编写css代码,并通过标签选择器.类选择器.ID选择器为指 ...

  8. MySQL 基础知识梳理学习(六)----锁

    1.什么是锁: 对共享资源进行并发访问控制,提供数据的完整性和一致性. 2.锁的区别: 类型 lock latch 对象 事务 线程 保护 数据库内容 内存数据结构 持续时间 整个事务过程 临界资源 ...

  9. SQLServer之创建事务序列化

    创建事务序列化注意事项 语法:set transaction isolation level serialize; 序列化会指定下列内容: 语句不能读取已由其他事务修改但尚未提交的数据. 任何其他事务 ...

  10. oracle异地备份

    一.安装oracle客户端 右键以管理员身份运行 选择管理员 跳过软件更新 选择语言,默认中文 指定安装位置 检查当前环境 安装 二.使用exp命令备份 exp 用户名/密码@IP地址/数据库 own ...