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

0.展示PTA总分


1.本章学习总结

1.1 学习内容总结

数据类型及标识符

  • 数据的类型基本上可以分为三类:整型(int)、浮点型、字符型(char)。其中浮点型又可分为两类:单精度(float)、双精度(double)。
    • 单精度浮点型与双精度浮点型最本质的区别就是存储空间的不同:单精度存储空间为4个字节,双精度存储空间为8个字节。也因此它们所能表示的数值范围不同。
  • 标识符由字母、数字、下划线组成,其中第一个字符必须是字母或下划线。PS:为了代码规范,变量名一般使用对应意义的英文单词,且使用驼峰命名法。

输入与输出

  • 我们学习了最常用的输入与输出函数:scanf()与printf()。除此之外,还有字符型数据专用的输入与输出:getchar()与putchar()。

分支结构

  • 双分支结构(if-else语句)
    • 其形式为:
if(表达式)
{
    语句1;
}
else
{
    语句2;
}
  • 多分支结构(if else if多分支语句、switch语句)
    • 这两种语句都可用于有多个判断条件的情况下,其不同的在于:1.if-else需要判断过个分支。而switch只进入满足条件分支,无需比较其他分支。switch语句效率更高。 2.switch语句只能处理等值条件判断的情况,case后只能是常量。而if选择结构的限制,特别适合某个变量处于某个连续区间时的情况。 3.switch语句判断的值必须是整型,if判断整型数和浮点数都可以。

循环结构

  • for循环、while循环、do-while循环。当循环次数确定时,通常使用for循环。while循环与do-while循环的差别在于:do-while循环无论是否满足循环条件,都会进入循环一次。

拓展内容

  • 随机数

include <stdlib.h>

include <time.h>

srand(time(0)); //生成不同的随机种子
computerNumber = rand()%100; //生成随机数

- 常用字符对应的ASCII码
   - ‘a’:97
   - ‘A’:65
   - ‘0’:48

1.2 本章学习体会
---------------
- 由于暑假有在MOOC上学习过一段时间的c语言,在刚开始的学习中较为轻松,但随着学习的深入及课堂内容的拓展,感觉到自己还有很多的不足,对代码的理解也还不够深刻。在两周左右的学习里,感觉自己还没有找到适合自己的学习方法,上一次博客作业中对自己大一的规划大部分都没有做到,希望自己在接下来的时间里可以尽快调整过来,并找到适合自己的学习方法。
- 大概1200行。emmm.....只有计划的大概一半。反思了一下原因,就是不自律,没做c语言相关作业时就不去打代码。

---------------


**2.PTA实验作业**
========
2.1出租车计价
----------
####2.1.1 数据处理
- 数据表达:
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006201656823-790525545.png)
- 数据处理:先输入公里数和等待时间,然后根据题目要求对数据进行分段处理。

####2.1.2 代码截图
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006202137341-222874102.png)

####2.1.3 本题可扩展功能
本题最突出的一点就是四舍五入,因为在之前的学习中没有学习过该如何直接对数据进行四舍五入的处理,所以我采用的办法是将数据的小数点后一位通过计算提取出来,并赋给一个变量,然后通过判断那个变量是否大于4,对车费进行相应的数据处理,如上述图中的25~35行代码所示。

####2.1.4 PTA提交列表及说明
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006202852404-904222726.png)
- 第一次的提交错误是由于没有认真审题,忽略了题目中的四舍五入条件。
-后两次的错误是在我修改过代码,加上了处理四舍五入的代码后错的。经过与同学的交流,我发现是我对于其中一个分段的理解错误导致,经修改后答案正确。



2.2计算天数
----------
####2.2.1 数据处理
- 数据表达:
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006204840507-1194397577.png)
- 数据处理:在for循环中使用switch语句,对天数进行叠加。

####2.2.2 代码截图
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006204951834-152433669.jpg)
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006205002776-1674315658.jpg)

####2.2.3 本题可扩展功能
本题主要考察如何叠加天数到想要的月份,这里我使用的是for与switch的嵌套使用,如上图所示。并且在有关于月份的题目中,都一定要注意考察2月的天数(即对于闰年的判断)。

####2.2.4 PTA提交列表及说明
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006205611605-1809400366.png)
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006205621784-2076343134.png)
- 我先是按照一个月份一个月份的算法写的,如2.2.2的图一所示,后经思考我发现这个代码是可以简化的,因为天数相同的月份可以放在一起写,如2.2.2的图二所示,将2.2.2图二中的代码在PTA上提交后,结果显示也为正确。



2.3判断水仙花数
----------
####2.3.1 数据处理
- 数据表达:
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006210915416-929132420.png)
- 数据处理:将输入的数据通过计算把每一位数分离,然后分别存入对应的变量中,再通过if-else语句判断是否为水仙花数。

####2.3.2 代码截图
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006211343900-1963726241.png)

####2.3.3 本题可扩展功能
学会如何通过计算把一个整数拆分开来。

####2.3.4 PTA提交列表及说明
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191006211707423-151938109.png)

---------------


**3.阅读代码**
================
![](https://img2018.cnblogs.com/blog/1772935/201910/1772935-20191007193456290-492764246.png)
- 代码功能:该代码用于求解简单交错数列的和。
- 优点:多引入一个变量,乘进每一项中并在每一次循环里改变该变量的值,是交错数列的求和变得简单。
posted @ 2019-10-07 19:39  1911王奕  阅读(211)  评论(0编辑  收藏  举报