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

    问题 回答
    这个作业属于哪个课程 C语言程序设计II
    这个作业要求在哪里 作业要求
    我在这个课程的目标是 能够自主开发出一个软件,拥有用户并能够维护程序运行
    这个作业在那个具体方面帮助我实现目标
    参考文献 百度百科,CSDN技术社区

    PTA实验作业

    1.1统计某类完全平方数

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

    函数接口定义:

    int IsTheNumber ( const int N );
    

    其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。

    裁判测试程序样例:

    #include <stdio.h>
    #include <math.h>
    
    int IsTheNumber ( const int N );
    
    int main()
    {
        int n1, n2, i, cnt;
    	
        scanf("%d %d", &n1, &n2);
        cnt = 0;
        for ( i=n1; i<=n2; i++ ) {
            if ( IsTheNumber(i) )
                cnt++;
        }
        printf("cnt = %d
    ", cnt);
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输入样例:

    105 500
    

    输出样例:

    cnt = 6
    

    1.1.1数据处理

    数据表达:

    使用了变量a,b,flag,都定义为整型,其中flag为数组,并初始化都为0
    

    数据处理:

    Begin
    给a赋值为需要判断的数开根号
    判断开方数的平方是否等于需要判断的数
    利用while语句判断是否整数含有相同数字
    数组用于标记和返回数值
    End
    

    1.1.2实验代码贴图

    1.1.3造测试数据

    数据输入 数据输出 说明
    0 99 cnt = 0 在0到99内无这样的整数
    500 1000 cnt = 2 在500到1000内有两个这样的整数

    1.1.4PTA提交列表及说明

    说明:

    对于数组的使用,在前期我对他的理解是根据余数判断是否出现重复,后来我发现自己的理解不太对,然后想了很久没想明白,再跟李清溪学长讨论后突然醒悟,我给数组初始化为0,在下一步就做标记,就可以理解的通了
    

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

    本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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数据处理

    数据表达:

    使用了digital,sum1,count,sum变量,都定义为整型
    

    数据处理:

    这道题需要写两个函数,is()函数用来判断各位数之和是否等于5,count_sum()函数用于统计和计算
    Begin
    int is(int number)
    {
    	使用do-while语句来判断整数各位数和,sum1用于接收结果
    	如果sum1等于5,则返回1
    	否则返回0
    }
    void count_sum(int a,int b)
    {
    	用for语句对于给定的范围进行循环判断
    	用if语句判断is函数返回的值
    	count累加整数个数
    	sum累加整数和
    }
    

    1.2.2实验代码贴图

    1.2.3造测试数据

    数据输入 数据输出 说明
    1000 1999 count = 15, sum = 17220 在1000到1999内有这样的整数15个,且和为17220
    0 10000 count = 56, sum = 77770 给定最大范围得到结果

    1.2.4PTA提交列表及说明

    说明:

    这题在老师布置作业之前在PTA固定题目集上做过,之前因为有一段时间没接触过自定义函数了,有点生疏。所以又看书重新复习了一下
    

    代码互评

    c1

    c2

    myself

    • 1.我的代码使用的do-while语句,其他两位同学使用的是while语句,并且他们while的判断条件与我不同,他们的是number大于0,而我的是number不等于0
    • 2.c1在while语句中使用两个表达式进行了各位数求和,而我使用了三个,这个是一个可以优化代码的地方

    学习总结

    3.1学习进度条

    这周所花时间 代码行 学到的知识简介 目前比较迷惑的问题
    第五周 8h 56行 常量,变量和数据类型
    第六周 12h 89行 格式化输入函数scanf(),for循环
    第七周 19h 286行 分支结构
    第八周 15h 238行 函数的定义和调用 函数的定义和调用的基本用法
    第九周 10h 173行 while语句,函数的定义和调用强化 被调函数返回值
    第十周 20h 312行 逻辑运算符优先级,定义和访问数组 逻辑表达式的运算
    第十一周 11h 189行 switch语句,ASCⅡ码的了解 进制转换
    第十二周 9h 279行 continue语句,循环结构的嵌套,do-while语句,条件运算符 break语句与continue语句的区别
    第十三周 9h 201行 break语句与continue语句的区别,循环结构嵌套的执行顺序
    第十四周 10h 224行 穷举法的了解,局部变量和全局变量 关于各种新接触的数学知识
    第十五周 11h 298行 变量生存周期和静态局部变量 静态局部变量

    3.2累积代码行和博客字数

    3.3学习内容总结和感悟

    3.3.1学习内容总结

    3.3.2学习体会

    1.这周在做PTA题目的时候,让我明白了,如果有些知识点不经常去使用去练习,很容易淡忘,所以自己合理的复习自己的知识点。

    2.我发现我在上课的时候,关于老师讲知识概念的时候,老爱开小差,这个很不好,这会导致自己要在课后花多余的时间去弄懂,所以自己要努力将这种毛病客服

  • 相关阅读:
    【浅谈数位计数一类问题】
    2.2、idea 中写spark sql
    javascript事件之鼠标滚轮(mousewheel)和DOMMouseScroll事件
    JS 判断鼠标滚轮的上下滚动
    gulp 用法 小结
    'gulp'不是内部或者外部命令,也不是可运行的程序
    Gulp的安装与配置
    前端构建工具gulpjs的使用介绍及技巧
    【转】弧度和角度的转换
    前端构建工具gulpjs的使用介绍及技巧
  • 原文地址:https://www.cnblogs.com/whl666/p/11986592.html
Copyright © 2011-2022 走看看