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


    0. 展示PTA总分


    1.本章学习总结

    1.1 学习内容总结

    • 学习随机函数使用:
    fabs()//绝对值
    round()//四舍五入
    pow( x,n)//求x的n次方
    sqrt()//求平方根
    
    • 选择结构的使用:

      • if-else结构:适合于区间判断,适应性强,可处理更多情况。如:

      • switch结构:适合于离散值的判断。可读性好,整体流程清晰明确。如:

    • 循环结构的使用:

      • for循环结构:第一个是初始化,第二个是条件语句,第三个是自处理语句。 循环时第一个语句只使用一次,然后判断是否满足第二个语句,满足则进入循环体。直到不满足循环体再跳出。

      • while循环结构:先对while()括号内的条件进行判断,若为真则进入循环,否则跳出循环。

      • do-while循环结构:与while循环类似,但是do-while循环是先进行循环体的循环,之后再对while()的条件进行判断,若条件为真则继续循环,否则会跳出循环。

      • 总结:个人认为for循环结构更常用;而while和do-while的区别在于判断条件的先后,即while是先判断,程序有可能不进行循环;do-while是后判断,就是说无论是否满足条件都只是会进行一次循环。

    • VS的调试

    1.2 本章学习体会

    1. 学习体会

      • 整体感受:在这两周的学习中,整体感受还算不错。林丽老师上课很仔细,很认真;感觉班级学习c语言的氛围也很浓厚。我特别喜欢课堂互动那个形式,可以让我在学习新知识的过程中更加快速地接受。但是我个人感觉除了课后的PTA练习,在上课期间动手写代码的时间不太够,因此在上过一节新课后可能对新教的代码只能停在认识,并不能立即运用。
      • 经过两周的学习,可以深刻的感受到课前预习课后复习的重要性。课前认真完成课堂派的预习作业和课后及时的PTA训练可以大幅度地提升学习效率。
      • 学会独立思考。在写代码是遇到错误点时不要第一时间求助,而是应该先尝试自己运用VS等工具进行调试,实在是不懂再去询问老师,助教,同学或者上网搜索。
      • 学会总结很重要。在一些小错误上一定要提醒自己不能再犯,同时写代码也要规范清晰,才方便修改阅读。
    2. 代码量:


    2.PTA实验作业


    2.1 PTA题目1

    c01-顺序结构练习
    7-7 计算银行存款的本息 
    本题目要求计算银行存款的本息,计算公式为sum=money×(1+rate)^year,其中sum为存款到期时的本息合计(税前),money是存款金额,year是存期,rate是年利率。
    

    2.1.1 数据处理

    1. 数据表达
        - 定义存款金额money、存期year、本息sum和年利率rate。(注:4个变量均为实型。)
    2.数据处理
        - 依次输入存款金额money、存期year、年利率rate。
        - 通过题目给的公式sum=money×(1+rate)^year进行sum的运算。(注:因为最后sum是保留2位小数,故需要注意浮点数的定义)
        - 输出实数sum。
    

    2.1.2 代码截图

    2.1.3 本题可扩展功能
    - 本题经过修改,可以分别计算本金与利息

    2.1.4 PTA提交列表及说明

    说明:在优化代码中的变量名时句末漏输了分号,导致的编译错误,通过VS中的错误列表的提示找到错误。


    2.2 PTA题目2

    c02-选择结构
    7-4 回文数
    判断一个5位数是不是回文数。例如12321是一个回文数,即它的个位与万位相同,十位与千位相同。。
    

    2.2.1 数据处理

    1. 数据表达
        - 定义输入的正整数number,个位数digit,十位数ten,百位数hundred,千位数thousand,万位数tenThousand。(注:所有变量均是整型。)
    2.数据处理
        - 输入五位正整数number。
        - 依次通过整除(/)与取余数(%)来将number的五个数字分开。
        - 通过if-else结构判断万位与个位,千位与十位是否相等来判断是否为回文数。
        - 输出yes或者no。
    

    2.2.2 代码截图

    2.2.3 本题可扩展功能
    -本题利用了整除与取余来分离整数的各位数,但是局限于输入的数被限制为5位数,因此我们可以利用循环来拓展它的功能,比如计算水仙花数等。如图:

    但是该代码存在可能运行超时的毛病(本人能力有限,只能写成这样了...),但是可以拓展为输出N位数中所有的水仙花数。

    2.2.4 PTA提交列表及说明

    说明:虽然做对了,但是对于多位数的分离以及各个符号的运用任然需要多练习。


    2.3 PTA题目3

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

    2.3.1 数据处理

    1. 数据表达
        - 定义输入的三边边长a b c,计算的值s,面积area,周长perimeter。(注:三边的边长是整型,s,面积,周长是实型。)
    2.数据处理
        - 输入三边边长a b c。
        - 通过算术运算计算s,周长与利用题目的公式计算面积。
        - 通过if-else结构来判断是否符合三角形法则,即两边之和大于第三边。
        - 根据判断结果判断是输出area&perimeter还是These sides do not correspond to a valid triangle。
    

    2.3.2 代码截图

    2.3.3 本题可扩展功能
    - 本题的判断语句中首先有对是否为三角形做判断,因此,在此基础上可拓展多个关于三角形的计算。
    2.3.4 PTA提交列表及说明

    说明,计算最终答案时既有整型的运算,也有实型的运算,因为最终答案是保留两位小数,所以在进行整型运算时需要乘1.00,否则最后的答案可能出现错误。



    3.阅读代码

    ACM题解poj 3751 时间日期格式转换
    代码截图:

    代码功能:对输入的时间日期实现格式的转换。

    亮点
    - 代码简洁清晰,格式标准,令人阅读时毫无障碍。
    - 在运用while 循环时后方巧妙地定义了一个字符串,并且接上一个判断语句来对am和pm实现判断。
    - 对于变量的定义十分正确,避免了因阅读错误而导致的代码错误。
    - 在循环体内,每输入一次便接上一个getchar(),是为了完成对每一个数字之后的字符进行吸收,若没有getchar(),则程序最后输出的答案会出现错误,因为有一部分的%d吸收的不是数字而是字符(注:测试时的字符必须使用英文字符,否则程序输出内容一样会有错)。
    - 在此段代码中:

    scanf("%d", &year);
    getchar();/*这两句代码的作用等同于scanf("%d %c",&year,&op);*/
    
  • 相关阅读:
    JAVA中的注解小结
    终结任务
    共享资源访问
    基本线程机制
    HashSet、LinkedHashSet、TreeSet
    EnumMap
    LinkedHashMap及其源码分析
    集合迭代器快速失败行为及CopyOnWriteArrayList
    LinkedList
    比特币中的Base58 编码
  • 原文地址:https://www.cnblogs.com/caihaoweideboke/p/11619852.html
Copyright © 2020-2023  润新知