zoukankan      html  css  js  c++  java
  • C语言博客作业01分支、顺序结构

    0.展示PTA总分

    顺序结构

    分支结构

    1.本章学习总结

    1.1学习内容总结

    1.学会了在程序有错误时进行调试(设置断点并观察变量,单步跟踪)

    2.明白了注释文本应该用///**/

    3.知道了多种数据类型及各自的格式控制字符

    int型使用%d float型使用%f double型使用%lf char型使用%c
    %.2f表示保留两位小数 %f保留六位小数

    4.了解了6种关系运算符

    <小于 <=小于等于 >大于 >=大于等于 ==等于 !=不等于 (注:=表示赋值)

    5.学会了使用if-else语句

    6.明白了scanf语句中输入变量时应该在变量名前加&

    7.知道了调用数学函数时加入#include<math.h>,并且知道了一些常用的数学函数表示方法

    8.了解了switch语句及其中break语句的三种使用方法,及与if-else语句的相同点和不同点

    共同点:①都能实现多分支结构
    不同点:
    ①if-else需要判断过个分支。而switch只进入满足条件分支,无需比较其他分支。switch语句效率更高。
    ②switch语句只能处理等值条件判断的情况,case后只能是常量。而if选择结构的限制,特别适合某个变量处于某个连续区间时的情况。
    ③switch语句判断的值必须是整型,if判断整型数和浮点数都可以。

    9.知道了程序中用for语句实现循环,for语句中的fahr++相当于fahr=fahr+1,并且for语句中用两个分号来分隔三个表达式,但for的后面没有分号

    10.了解了a'a'的区别

    a是变量;
    'a'是字符常量
    变量放数据,常量不能变

    11.认识了字符类型数据有字符型常量'A','a','9','*'等和字符型变量op之分

    字符型变量在定义时用类型名char,例如:char op

    12.知道了字符型数据的输入输出可以调用函数scanf()printf()getchar()putchar()

    • ch=getchar() 只能读入一个字符,如果要输入多个字符,需要多次调用该函数,一般采用循环调用的方式
        for(i = 0; i <= 10; i++)
            ch = getcher(); ```
    * ```putchar(输出参数)```可以输出一个字符,输出参数为字符型常量或者字符型变量
    
    ###13.记住了三种逻辑运算符,知道了逻辑运算符的运算对象可以是关系表达式或逻辑表达式,逻辑运算的结果是“真”或“假”,逻辑运算符&&和||的优先级低于关系运算符
    ```!```非          ```&&```与         ``` ||```或
    ![](https://img2018.cnblogs.com/blog/1774313/201909/1774313-20190928150708759-459872651.png)
    ###14.知道了在switch语句中,表达式和常量表达式的值一般是整型或字符型,所有的常量表达式的值都不能相等,在switch语句所有语句段的末尾使用break,可以简单清晰地实现多分支选择
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191001124235501-1257045485.png)
    ###15.明白了在嵌套的if-else语句中,如果内嵌的if省略了else部分,可能在语义上产生二义性,也明白了else和if的匹配标准是**else与最靠近它的,没有与别的else匹配过的if相匹配**
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191001124912942-2118885525.png)
    * 注:输出结果:2
    
    ##1.2 本章学习体会
    * 通过这两三周时间的学习,我真正了解到了C语言的内容。刚开始的时候,因为学习内容比较简单直白,再加上暑假有看慕课视频,所以暑假看不懂的都有了解释,那时的我欣喜若狂,十分激动,对于这门课程也**激发了极大的兴趣**,觉得十分有趣,然而,随着课程的继续,我不明白的地方越来越多,所以开始常常问学长学姐,问明白的同学,在他们的帮助下,我也算是取得了些许的进步。
    * PTA上的题目集让我发现了许多不易引起我注意的问题,例如**空格问题**等等,这些问题我一定会**牢记于心,争取不再重复**这些细节问题。
    * 在**switch语句**上我还是运用不太熟练,但我一定会弄明白它。在这一段时间里,我了解到了许多的新知识,比如**驼峰命名法**,再比如**变量类型的区别**等等,对于vs我也更熟悉了,还学会了自己**调试**,找错误,我也在这些错误中取得了进步。
    * 我的代码量:(不包括重复写)
    
    |周|代码量(行)|
    |:---:|:--:|
    |4|241|
    |5|506|
    |累计|747|
    
    #2.PTA实验作业
    ##2.1 题目名1
    

    输出三角形面积和周长 (15 分)
    本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=√s(s−a)(s−b)(s−c),其中s=(a+b+c)/2。

    ###2.1.1 数据处理
    
    1. 定义三角形三边长分别为a、b、c,面积为area,周长为perimeter ,公式中的s。边长定义为整型,其余因为有小数,定义为浮点型。
    2. 输入边长a,b,c。
    3. 运用if-else语句判断是否边长能够构成三角形,即判断是否符合三角形法则(三角形任意两边和大于第三边),并且要用逻辑运算符&&与。
    4. 如果符合if的条件,则进入if的表达式中,利用算术公式和数学函数算出s,area和perimeter,然后保留两位小数输出area和perimeter。
    5. 如果不符合if的条件,则进入else语句,即输出“These sides do not correspond to a valid triangle”。
    ###2.1.2 代码截图
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191003090635993-1944305379.png)
    ###2.1.3 本题可扩展功能
    * 判断是否是直角三角形
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191003092934708-1442170865.png)
    
    ###2.1.4 PTA提交列表及说明
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191003093120907-189825292.png)
    * 写了s和area的公式后,**忘记写perimeter的公式**,我通过**不断对比题目**而找出问题
    * ```scanf```在vs上用```scanf_s```写,在复制到PTA上时忘记去掉```_s```,我**把程序完整看了一遍**后知道错误
    * **数学函数运用不熟练**,**多看书**
    
    ##2.2 题目名2
    

    判断一个三位数是否为水仙花数 (15 分)
    本题要求编写程序,判断一个给定的三位数是否为水仙花数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身。

    ###2.2.1 数据处理
    
    1. 定义百位数字hundred, 十位数字ten, 个位数字bit,以及被输入数字number。均为整型。
    2. 输入一个数number。
    3. 利用表达式算出相应的百位hundred,十位ten,个位bit,注意运用基本运算和取余%。
    4. 利用if-else语句判断number是否为三位数。
    5. 如果number不是三位数,则输出Invalid Value!。
    6. 如果是三位数,则进入else-if语句判断是否为水仙花数。
    7. 如果是水仙花数,则输出Yes,否则输出No。
    ###2.2.2 代码截图
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191003101456428-423303386.png)
    ###2.2.3 本题可扩展功能
    * 获得四位数(或者其他位数)的水仙花数
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191003112441416-1773806565.png)
    
    ###2.2.4 PTA提交列表及说明
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191003112553012-866296641.png)
    * **hundred==0**并不代表一定不是三位数,两位数和一位数的百位也是0,理解错误,我通过询问同学一起互相讨论,从而改正成number和1000与99进行大小对比,即```number>=1000||number<=99```
    
    ##2.3 题目名3
    

    12-24小时制 (15 分)
    编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

    ###2.3.1 数据处理
    
    1. 定义小时hour,分钟minute。均为整型。
    2. 输入24小时制时间。
    3. 运用if-else语句判断hour是否大于等于12。
    4. 如果hour>=12,进入嵌套的if-else语句中,再判断hour是否等于12。
    5. 如果hour==12,因为中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:00 PM。
    6. 如果hour>12,则令hour-12后再赋值给hour,然后按照格式输出。
    7. 如果hour<12,则进入else语句,直接按照格式输出即可。
    
    ###2.3.2 代码截图
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191003121929708-202227074.png)
    ###2.3.3 本题可扩展功能
    * 输入12小时制的时间,然后显示24小时制的时间
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191003124546965-178534147.png)
    
    ###2.3.4 PTA提交列表及说明
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191003124710794-1012654119.png)
    * 开始时不知道小时和分钟之间的```:```应该怎么写,于是用了char()字符型变量,可是事实上它是常量,后来问了同学发现**直接写**就可以了
    * 将hour分为两段,在其中一段中需要**运用嵌套语句**
    * 要学会多思考,在脑海中不断重复过程,刚开始思路不清晰,被同学点拨后一下子就清楚了
    
    #3.阅读代码
    ## ACM 题库题解: poj 3750 小孩报数问题
    题目截图:
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191006144303286-1375295938.png)
    代码截图:
    ![](https://img2018.cnblogs.com/blog/1774313/201910/1774313-20191006144319286-165179693.png)
    代码分析:
    * 代码功能:输入n,w,s,以及n个小孩的名字(人名不超过15个字符),令n个小孩按顺序从第w个开始报数,报到规定的第s个后出列,游戏直至小孩全部出列为止
    * 代码优点:定义变量名称准确,容易让人明白意思;运用for语句,while语句,if语句,其中相互嵌套,逻辑顺序严谨;语句末尾使用break语句,节省了运算时间;作者考虑到了人数不到s时的情况并且写出相关解决办法,十分全面
    缺月挂疏桐,漏断人初静。时见幽人独往来,缥缈孤鸿影。 惊起却回头,有恨无人省。拣尽寒枝不肯栖,寂寞沙洲冷。
  • 相关阅读:
    Neutron 理解 (1): Neutron 所实现的虚拟化网络 [How Netruon Virtualizes Network]
    openstack里面的Provider network 和 Tenant network 的区别
    Openstack网络相关概念比较复杂,经常使人混淆,本文进行相关说明。
    OpenStack 网络:Neutron 初探
    openstack 网络架构 nova-network + neutron
    Java 性能测试的四项原则
    微信公众号开发之微信买单
    微信公众号开发之如何使用JSSDK
    微信公众号开发之如何一键导出微信所有用户信息到Excel
    [内核驱动] 链表LIST_ENTRY的操作(转)
  • 原文地址:https://www.cnblogs.com/xyx129221/p/11590373.html
Copyright © 2011-2022 走看看