zoukankan      html  css  js  c++  java
  • C语言I博客作业11

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 C语言I作业11
    我在这个课程的目标是 希望能够在学完后能够自己做出一个C语言的小游戏
    这个作业在那个具体方面帮助我实现目标 函数复习;熟悉变量的作用域、生存周期和存储类型。
    参考文献 C语言程序设计

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

    1.1(6-1) 统计各位数字之和是5的数 **(20 **分)

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

    函数接口定义:

    int is( int number );
    void count_sum( int a, int b );
    

    函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。

    函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式

    count = 满足条件的整数个数, sum = 这些整数的和
    

    进行输出。题目保证0<ab≤10000。

    裁判测试程序样例:

    #include <stdio.h>
    
    int is( int number );
    void count_sum( int a, int b );
    
    int main()
    {
        int a, b;
    
        scanf("%d %d", &a, &b);
        if (is(a)) printf("%d is counted.
    ", a);
        if (is(b)) printf("%d is counted.
    ", b);
        count_sum(a, b);
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输入样例:

    104 999
    

    输出样例:

    104 is counted.
    count = 15, sum = 3720
    

    1.1.1数据处理

    • 数据表达:此题我定义了四个整型变量x, y, i, flag和一个整型数组a[10],并将flag赋值为0,a[10] = { 0 };x,y用于存储N能否开平方进行中间值的储存;i代表的是各位数的数值;flag是N是否为完全平方数的一个返回值标志;a[10]代表一位数可能出现的10种情况

    • 数据处理:

      int IsTheNumber(const int N)
      定义变量x, y, i, flag和数组a[10];
      flag←0,a[10]←{0};
      x←N的算数平方根;
      y←x的平方;
      如果y是完全平方数
      {
      	循环直至y为0
      	{
      		得到N的个位数;
      		N中有某个数的个数+1;
      		如果有某个数的个数大于2
      		{
      			确定一个标志flag←1;
      		}
      		控制N依次去掉各位数;
      	}
      }
      返回flag的值
      

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入 输出 说明
    105 500 cnt = 6 sample 全是3位数
    1111 2222 cnt = 9 全是4位数
    -100 11 cut = 0 包括负数,cnt为0

    1.1.4 PTA提交列表及说明

    说明:

    • 编译错误:等号的左值应该是一个可修改的值,我直接用了N,后来重新定义了一个值作代表
    • 答案错误:flag没有进行初始化;后来加上flag=0;

    1.2(6-2) 统计各位数字之和是5的数 (20 分)

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

    函数接口定义:

    int is( int number );
    void count_sum( int a, int b );
    

    函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。

    函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式

    count = 满足条件的整数个数, sum = 这些整数的和
    

    进行输出。题目保证0<ab≤10000。

    裁判测试程序样例:

    #include <stdio.h>
    
    int is( int number );
    void count_sum( int a, int b );
    
    int main()
    {
        int a, b;
    
        scanf("%d %d", &a, &b);
        if (is(a)) printf("%d is counted.
    ", a);
        if (is(b)) printf("%d is counted.
    ", b);
        count_sum(a, b);
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输入样例:

    104 999
    

    输出样例:

    104 is counted.
    count = 15, sum = 3720
    

    1.2.1数据处理

    • 数据表达:函数1:我定义两个整型变量num,sum;num用于取得number的个位数;sum用于对num进行累加;
      函数2:我定义了两个整型函数count,sum;count用作与对符合条件数的进行记数;sum用作与对对符合条件数的进行累加

    • 数据处理:

      int is(int number)
      定义变量num,sum;
      num←0,sum←0;
      循环直至为number等于0的时候
      {
      	num←number的个位数;
      	sum←sum+num;
      	控制N依次去掉各位数;
      }
      如果sum等于5;
      {
      	返回1;
      }
      如果sum不等于5;
      {
      	返回0;
      }
      
      void count_sum(int a, int b)
      定义变量count,sum;
      count←0,sum←0;
      从a开始循环直到b,每次循环a+1;
      	如果i的各位数之和是5
        {
      		count+1;
      		sum = sum + i;
      	}
      输出count的值和sum的值
      

    1.2.2实验代码截图

    1.2.3 造测试数据

    输入 输出 说明
    104 999 104 is counted.
    count = 15, sum = 3720
    sample等价,a是,b不是
    14 23 14 is counted.
    23 is counted.
    count = 2, sum = 37
    a和b都是,但之间没有
    0 1 count = 0, sum = 0 区间内完全没有
    0 10000 count = 56, sum = 77770 最大区间
    13 15 count = 1, sum = 14 最小区间,有1个

    1.2.4 PTA提交列表及说明

    说明:部分正确:for循环中的终止条件写成了i<b;后来改成了i<=b

    2.代码互评

    同学1代码:

    同学2代码:

    我的代码:

    对于这个题目区别主要在第一个函数,第二个函数基本上没有什么什么区别

    不同点:

    我与同学:我的第一个函数是在对和是否为5进行判断后就直接进行返回值的操作,两位同学则是用了一个标志再进行对标志的返回

    同学与同学:同学1在对sum进行判断后再将sum赋值为1或者0,再将sum的值作为返回值进行返回,
    同学2是定义了一个i的标志变量,并且初始化为0,如果sum符合条件就再将其赋值为1,最后返回i的值

    3.学习总结

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第六周 20小时 372 if-else语句和数学函数 暂无
    第七周 10小时 226 分支结构 暂无
    第八周 12小时 110 for循环结构 暂无
    第九周 16小时 200 函数的声明,定义和调用 暂无
    第十周 20小时 323 分支结构,字符型数据类型,ASCII码,逻辑运算符 对于字符型数据类型的运用还是不熟练,需要多加练习
    第十一周 18小时 788 分支结构,switch语句,简单的数组的使用 对于数组的了解还是不够,下周还是要多加学习
    第十二周 22小时 346 循环结构,while循环和do-while循环 数组和结构体的知识有待加强
    第十三周 20小时 463 熟悉break、continue的使用;熟悉使用循环的嵌套解决问题。 最近自学的进度有点落下来了,有必要调整下自己的时间安排
    第十四周 23小时 564 学了一点最基础的Linux系统的命令行操作,会查看日历,当前日期等操作 对于C语言指针方面有点懵
    第十五周 35小时 376 继续学习Linux操作系统的基础命令操作,进行python的学习 对于C语言指针方面有点懵

    3.2 累积代码行和博客字数

    3.3学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    快考试了,感觉还有好多有学的东西,寒假时间虽然比较长但是任务可能也会比较重,加油

  • 相关阅读:
    JQ优化性能
    CSS3 Filter的十种特效
    立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( )) 有什么区别?
    EasyUI DateBox
    Java8接口的默认方法
    MySQL -- insert ignore语句
    建数据库表经验总结
    IntelliJ IDEA 实用快捷键
    从 Java 代码到 CPU 指令
    使用ImmutableMap简化语句
  • 原文地址:https://www.cnblogs.com/just-like-this/p/11992126.html
Copyright © 2011-2022 走看看