• C语言I博客作业11


    问题 回答
    这个作业属于哪个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10131
    我在这个课程的目标是 掌握并熟悉C语言的运用
    这个作业在哪个具体方面帮助我实现目标 函数的定义
    参考文献 《C primer Plus》《C语言程序设计》《CSDN》《百度》

    1. 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 数据处理

    数据表达:定义整型变量m,n,a,i,其中a为数组型
    数据处理:

    int IsTheNumber ( const int N )
        定义整型变量 n ← (int)sqrt(N*1.0),m ← n*n;
    	if(m == N)  then
    		定义整型数组 a[10] ← {0};
    		while  m > 0
    			定义整型变量 i ← m % 10
    			a[i]++
    			if a[i]==2 
                           返回 1;
    			m /=10;
                            end if
                     end if
                    	返回0
         结束
    

    1.1.2 实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    105 500 cnt = 6 示例
    0 300 cnt = 4 第一个为0
    400 0 cnt = 0 第二个为0
    300 900 cnt = 5 输入都不为0

    1.1.4 PTA提交列表及说明

    • 答案错误:记错题目要求把返回值搞反了,返回值1和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<a≤b≤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

    数据表达:定义整型变量num1,sum←0,count←0,sum2←0,i
    数据处理:

    int is( int number )
        定义整型变量 num1,sum←0;
        repeat
         num1 ← number%10;
         sum ← sum+num1;
         number ← number/10;
        until number ← 0 
        if sum==5
        then
        返回 1
        else
        返回 0
       end if
    结束
    void count_sum( int a, int b )
        定义整型变量 count←0,sum2←0,i;
        for i=a to b
               do
               if is(i) then
    			count++;
    			sum2←sum2+i;
            end if
        
            输出count,sum2
       
    结束
    

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    104 999 104 is counted.
    count = 15, sum = 3720
    示例
    1 333 count = 18, sum = 2574 区间极限数没有和为5的
    23 401 23 is counted.
    401 is counted.
    count = 17, sum = 2956
    区间极限都是和为5的

    1.2.4 PTA提交列表及说明

    • 部分正确:第一个返回值写成了返回0,应该是粗心然后顺手就没注意题目要求,第二个返回值对了,所以只有两分,然后搞清楚返回值要求后,改成了1然后对了

    2. 代码互评

    6-1 统计某类完全平方数

    同学1的代码

    同学2的代码

    自己代码

    不同:

    同学1:
    1.他定义了n=N,我定义了n=根号N
    2.他用了while循环和for循环来进行计算,我只用了while循环
    3.他的返回判断条件是for循环中ifp[i]>1返回1,我的判断条件是(a[i]==2)返回1
    同学2:
    1.开始定义的数组范围不同
    2.他用了while循环和for循环来进行计算,我只用了while循环
    3.我们的思路是差不多的,只是在写法上的不同

    3. 学习总结

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识简介 目前比较迷惑的问题
    第一周 7天 39 学会用markdown语法写博客园,用PTA打代码 代码格式一无所知
    第二周 6天 60 下载编译器,学到了提问的智慧 对编译器还是不了解
    第三周 3天 121 分段函数的表达,if-else语句的用法 对各语法还是不了解,数学库函数有太多不知
    第四周 3天 77 for循环语句,累加计算 对各语句还是不熟练
    第五周 4天 82 函数题,自定义函数,while循环语句 不明白函数题的写法,有些数学题是真的难
    第六周 4小时 120 学会了数组,对for循环有了进一步了解 思维容易混乱,不知道该怎么去顺解题思路和答案想不全面
    第七周 2小时 112 学会了switch语法,对数组运用更进一步 switch语法还是不熟练,有些看得懂但是自己想不到怎么写
    第八周 2小时 83 运用while语法,了解了二进制,学到%c表示字符型 对while语法并不是很熟练,伪代码不会写
    第九周 2小时 99 学会for循环的嵌套,%-4d表示占四位,左对齐 for循环过多嵌套时理解得有点麻烦
    第十周 3小时 86 学了markdown语法的表格内换行,还有素数的判断 for循环嵌套的思路与运用,想不到多种方法解决问题
    第十一周 5小时 85 学会markdown语法的代码框,PTA加深了函数题的定义编译 这次编程题不会写,找不到思路

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    对于函数我依旧觉得很难,然后这次编程题也很难,看那些钻研出的同学们的代码是真的觉得很强了,但是幸福数那个挑战题我是真的觉得无法用自己的脑子理解了,编程题要写的行数也比以前作业要多,函数虽然还是不能够理解,觉得老师一节课说的那些知识有点多,于是就只能后面看书,依旧似懂非懂的,关于伪代码的写法,去别人的博客看了一下,然后学习了一些,差不多比之前要明白一点了,然后为了博客的美观,去百度搜索了markdown语法的代码框,然后学了一下觉得果然美观多了,不管什么东西,都需要去认真找认真学,这样才能有所收获和进步,我还需要去学习去查阅更多的知识.

  • 相关阅读:
    mybatis入门
    Golang学习笔记——Slice
    struts2文件上传问题
    分页查询的具体实现
    ajax发送异步请求——GET方式
    Golang学习笔记——array
    关于Spring出现"COMMIT/AUTO or remove 'readOnly' marker from transaction definition."的解决办法
    Golang学习笔记——control_structure
    SSH框架整合过程
    Golang学习笔记——variable
  • 原文地址:https://www.cnblogs.com/1076022899-lj/p/11994594.html
Copyright © 2020-2023  润新知