zoukankan      html  css  js  c++  java
  • 第二篇博客作业 Y

    | 这个作业属于哪个班级 | C语言--网络2011/2012 |
    | ---- | ---- | ---- |
    | 这个作业的地址 | C博客作业00--我的第一篇博客 |
    | 这个作业的目标 | 学习Makdown语法,对本专业及C语言课程有个简单了解,记录自学慕课视频的笔记。教师可以对学生有个初步的认识。 |

    0. 我的PTA总分


    1. 本章学习总结

    1.1 学习内容总结

      1. 学会运用flag变量,可以有效增强代码的运行效率 
    



    相对于调运pow函数而言,改变flag变量来改变数据的正负会使代码更简洁高效

      2. 学习rand()引入随机数
        但rand()的随机数总是既定的某一个,无法做到次次随机
        所以就要构造随机数种子,并引入time,srand(time)
        就可以引入一个1~100的随机数rand()%100+1
      3. 学习了break和continue的用法
         break;//跳出循环,但要注意只能跳出本层的循环
         continue;//跳过循环后面的分支,并重新进入循环
         另外,在for语句中,如for(i=1,i<=10,i++)中,使用break后不会执行i++,而continue会执行完i++后再重新进入循环
    

    1.2 编程技巧总结

    • 取个位,如取变量sum的个位:sum%10
    • 去个位,如去变量sum的个位:sum/10
    • 判断整除,如判断sum变量是否可被10整除: sum%10==0
    • 当分支较多时,使用switch语句能使代码更简洁

    1.3 本章学习体会

      在近期学习C语言的过程中,渐渐感受到了C语言的魅力,同时也对计算机有了更加深入的了解
      但随着学习的深入,也渐渐感受到编程的难度,经常会出现思路错误,为了更好地编写程序,我认为学习编写伪代码尤为重要
      近两周随着学习的深入,代码量也渐渐增加,但有时候编写的代码常常也非常复杂,如在编写(前天是哪天)的时候写了100行的代码,所以学会做到简化代码也很重要
    

    2. PTA实验作业

    2.1 前天是哪天

    2.1.1 数据处理

     因为考虑的情况比较繁杂,所以要先写伪代码来缕清思路(伪代码的编写已被删除)
     首先要定义变量年(year)月(month)日(day),另外需要判断该年是否为闰年
    

    if (year % 400 == 0 || ((year % 4 == 0) && (year % 100 != 0)))

     还有需要判断该月是大月还是小月还是二月,最后关于天,要判断是否为该月的第一天或者第二天,另外还要注意每年的第一天和第二天的前天要退一年
     因为这份代码里的变量都是年,月,日,所以在定义变量的时候都是int整形变量
     对于变量,我认为还需要定义temp临时变量来储存一些数据或者判断某种情况
    

    2.1.2 代码截图

    2.1.3 PTA提交列表及说明


    Q1:分支的问题
    A1:因为月份分支较多,所以对于月份用if语句就会很不方便,而使用switch语句就会使代码简洁高效
    Q2:分支里面要嵌套分支,那么什么作为外分支,什么作为内分支?
    A2:可以先判断年份是否为闰年,再判断月份,最后再是天数

    2.2 jmu-c-二进制转10进制

    2.2.1 数据处理

      运用循环,不断进行getchar读取单个数字进行进制转换
      所以要先定义一个字符变量ch,另外还需定义一个变量来存储进制转换的十进制结果
    

    2.2.2 代码截图

    2.1.3 PTA提交列表及说明


    Q1:如何建立循环读取单个数字或字符
    A1:while (ch = getchar(), ch != '\n')
    Q2:在执行default分支打印完error input!后break跳出switch语句后,无法直接跳出循环
    A2:可以定义标志变量flag,在执行default时改变flag的量,使其变为0,再跳出switch后便可以运用flag来跳出循环

    2.3 如何进行单步调试

    还是上面这道题,我们先来看一下单步调试的步骤
    


    这样的话,在进行单步调试的时候,我们就可以有效地观察到变量是否进入到某个分支或者循环中去

    2.3.1 调试拓展

    printf调试也可以很好地了解变量的去向,就是在分支的内部加入一条打印语句,如果变量有进入,那就会打印出这条语句
    而且可以根据这条打印的内容的次数了解变量进入该分支的次数,这样也可以避免单步调试次数过多而带来的不便
    

    2.3.2 switch拓展

    在用vs探索switch的用法的时候,我发现一种很大胆的写法可以很好地简化代码,使代码更清晰,如图:
    

    3.0 to助教/老师

    最后,如果助教或者老师看到了的话,希望能帮忙讲解一下这道题

    虽然最后做对了,但还是觉得代码很复杂,求更简洁的代码

  • 相关阅读:
    Self referencing loop detected for property 错误
    路径 序列化
    css基础回顾
    React 随笔二
    Reactnative 随笔一
    值类型和引用类型 装箱和拆箱 类和结构的异同 接口抽象类异同
    多语言配置--LogisticsPlatform物流平台系统
    word-wrap&&word-break,奇偶行、列设置样式
    easyUI 的tree 修改节点,sql递归查询
    跳转页面,传递参数——android
  • 原文地址:https://www.cnblogs.com/ywk2002/p/13940635.html
Copyright © 2011-2022 走看看