• 博客C语言I作业11


    一、本周教学内容&目标

    第5章 函数 要求学生掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。

    二、本周作业头

    这个作业属于哪个课程 c语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10130
    我在这个课程的目标是 了解、运用并学会自己编辑c语言
    这个作业在哪个具体方面帮助我实现目标 能帮助我更了解c语言,练习c语言
    参考文献 《c语言程序设计》《C Primer Plus》

    三、本周作业

    PTA实验作业
    代码互评
    学习总结

    四、作业格式

    1.PTA实验作业(20分/题)

    1.1统计某类完全平方数

    本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。

    1.1.1数据处理

    数据表达:

    定义了五个变量a,b,c,n,m,和一个数组d[10],分别代表平方数,承接if的数,各位数数字,等价输入数,对应数组数。
    

    数据处理

    定义整型a,b,c,n,m;              //分别代表平方数,承接if的数,各位数数字,等价输入数,对应数组数。
    定义整型d[10]←{0}                 //定义一个10位的数组,从0开始,每个个数数字都为0
    for a←1 to sqrt(N)              //累加a
       b←0
       if(N==a*a)                 //如果N为完全平方数
          n←N;
          while(n)                //当n大于0时进行循环
             c←n%10;                //求出各个位数的数字
             d[c]++;                //数组中为c的数字个数加1
             n←n/10;
          for m←0 to 10             //统计所得数组每个位数数字的个数
             if(d[m]>=2)            //个数不少于2,返回1
                b←1;                //改变b的值
                return 1;
       if(b==0)
          return 0;                 //若b的值没被改变,则输出0
    

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    105 500 cnt = 6 题目给出数据
    0 1 cnt = 0 最小整数
    121 121 cnt = 0 区间为0

    1.1.4 PTA提交列表及说明


    提交列表说明

    **部分正确**:最开始没有想到要用数组,光求各个位数就用了三个循环结构,弄出了十几个变量,也有很多细节难以发现,总是部分正确。百度了一下,发现还可以用数组,简单易懂很多,因此,最后我还是采用了数组。
    

    1.2 统计各位数字之和是5的数

    本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。

    1.2.1 数据处理

    数据表达

    第一个函数定义了五个整型变量n,m,x,sum,a[10],分别表示等价输入数,各个位数的数字,对应组数数字,各位数之和,10位的数组。
    第二个函数定义了两个整型变量count,sum,分别表示为满足条件的数字个数,各位数之和的总和。
    

    数据处理

    定义整型n,m,x,sum;            //分别表示等价输入数,各个位数的数字,对应组数数字,各位数之和,10位的数组
    定义整型a[10];                  //定义一个10位的数组,从0开始,每个个数数字都为0
    while(n)                        //当n大于0时进行循环
            m←n%10;                 //求出各个位数的数字
            a[m]++;                 //数组中为m的数字个数加1
            n/←10;
        for x←0 to 10               //统计所得数组每个位数数字的个数
            sum+=x*a[x];            //数组中数字乘数字个数之和
        if(sum==5)
            return 1;
        否则
            return 0
    定义整型count=0,sum=0;            //分别表示为满足条件的数字个数,各位数之和的总和
        for a to b                  
            if(is(a)==1)              //区间范围满足条件
            	count++;       
    	        sum+←a;           //计算各位数之和的总和
        输出count , sum;
    

    1.2.2 实验代码截图


    1.2.3 造测试数据

    输入数据 输出数据 说明
    104 999 题目给出数据
    104 105 sample等价,a是,b不是
    105 106 区间内完全没有

    1.2.4 PTA提交列表及说明

    **格式错误**:输出时没注意,忘记等号前后打空格。
    

    2.代码互评(5分)

    同学代码截图

    自己代码截图

    1)第一份代码定义了五个变量,第二份代码定义了六个变量。
    2)两份代码都运用了数组,但两份代码的思路完全不同,第一份代码定义了一个一百位的数组,通过count的累加,储存各位数数字,最后用小于count的数和每次累加到的count数组比较,如果有相同的,就满足条件。而第二份代码则是定义了一个从0开始的10位数的数组,每个数字个数都为0,再求各个位数c,最后用累加m比较每个数字的个数,即大于2的就满足条件。相比而言,我觉得两份代码都各有所长吧。
    

    同学代码截图


    自己代码截图

    1)第一份代码总共定义了五个整型变量,而第二份代码总定义了六个变量。
    2)第一份代码没有用数组,而第二份代码使用了数组。
    3)第一份代码是直接求出各位数数字,累加起来得到和与5比较,而第二份代码运用了数组就比较麻烦,方法和第一题差不多,但相比起来,这一题,用第一份代码的方法简便些。
    

    3.学习总结(15分)

    3.1 学习进度条(5分)

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    1/16~1/22 1h 42 输入,输出文件
    2/23~2/29 3h 31 使用int定义变量
    3/7~3/10 6h 93 选择型流程结构,使用double定义变量 输出printf,scanf中%后面使用d或者f或者lf分不清
    4/15~4/18 6h 100 循环流程结构 段错误的原因
    5/22~5/26 8h 104 调用函数,形参和实参 while的循环原理
    6/29~6/22 10h 166 字符,ASCⅡ码集,套嵌if-else分支 for循环边界值
    7/5~7/8 5h 141 switch多分支结构
    8/12~8/15 7h 159 while循环 使用字符解题不怎么会,定义变量所占空间大小
    9/19~9/22 15h 171 break,continue getchar(),变量的位置
    10/25~10/28 18h 211 循环结构的使用 数组的使用
    11/3~11/6 19h 441 类型函数的定义、调用和申明 控制迭代精度的EPS的使用方法

    3.2 累积代码行和博客字数(5分)

    3.3 学习内容总结和感悟(5分)

    3.3.1 学习内容总结



    3.3.2 学习体会

    这次题目是真的有点难,先做函数题时,第一个题目就想了我很久,想的方法也复杂得要死,最后还是用数组写出来的。做完之后,我想,编程题应该会简单些吧,做了之后,觉得我真的是异想天开了。
    难题之后只有更难。
    也许以后,我们还会遇见更难的题目吧,然后回过头来,现在做的难题到那时也会觉得很容易了吧,就像现在的我现在回顾我那些以前做过的题目一样。我期待着那一天的到来。
    只有遇到难题,只要做了都会学到很多,尤其是做出来与其他人的做对比,你可以知道自己的代码有哪些不足,还可以学习别人的做题方式。

  • 相关阅读:
    php 采集程序
    15个实用的PHP正则表达式
    jQuery Mobile优秀网站及资源汇总
    连接ORalce数据库
    Windows Mobile如何观看Webcast
    解决wpf中使用WinformsHost显示滚动条的问题
    利用反射调用类及其属性和方法
    一些实用的vs.net2008 快捷键(已验证)
    WW插件研究
    微软今天公布了下一代Visual Studio和.NET Framework开发工具和平台,该平台将被命名的Visual Studio 2010和.Net Framework 4.0.
  • 原文地址:https://www.cnblogs.com/xiamudaren1/p/11994735.html
Copyright © 2020-2023  润新知