c语言I作业11

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10129
我在这个课程的目标是 理解调用函数的用法。
这个作业在那个具体方面帮助我实现目标 局部变量全局变量的理解以及在代码中的运用
参考文献 《c语言程序设计》,csdn

一.PTA实验作业

1.1 统计某类完全平方数

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

函数接口定义:
int IsTheNumber ( const int N );

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

1.1.1 数据处理

数据表达:定义变量n,b,p,m全为整型;

数据处理:如下

int IsTheNumber (const int N)
    定义变量n←N,b,数组p,m;
    if m*m=n then
        while n!=0
            b←n%10
            p【b】←p【b】+1
            n/=10
        for int i←0 to 9
            if p【i】>1
            返回1
            end if
    end if
        返回0
结束

1.1.2 实验代码截图

c语言I作业11_第1张图片

1.1.3 造测试数据

输入数据 输出数据 说明
105 500 cnt = 6 pta样例
0 600 cnt = 7 随机输入数据
400 900 cnt = 5 随机输入数据

1.1.4 PTA提交列表及说明

c语言I作业11_第2张图片

完成过程中出现了编程错误和部分错误

编程错误:有一处“;”因疏忽为加,输出格式没有弄正确。

部分错误:while语句中,n/=10写成n+=10,导致中间部分结果结果出错。

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。

1.2.1 数据处理

数据表达:定义c,d,sum皆为整型变量;

数据处理:如下

int is (int number)
    定义变量c,d,sum
    while number!=0 do
        c←number%10
        sum←sum+c
        number=number/10
    if sum=5 then
        返回1
    else
        返回0
    end if
结束
void count_sum(int a,int b)
        定义变量i,sum1←0,count←0
        for i=a to b
            if is(i)!=0 then
                count←count+1
                sum1←sum1+i
            end if
        
        输出count,sum1
结束
    

1.2.2 实验代码截图

c语言I作业11_第3张图片

1.2.3 造测试数据

输入数据 输出数据 说明
104 999 104 is counted.
count = 15, sum = 3720
pta样例
54 800 count = 15, sum = 3720 随机输入数据
10 500 500 is counted.
count = 20, sum = 3880
随机输入数据

1.2.4 PTA提交列表及说明

c语言I作业11_第4张图片

完成过程中出现了编程错误和部分错误

编程错误:使用函数的调用时格式出现错误,导致程序无法进行编译。

部分错误:第二个调用函数中,for循环体中i<=b写成i

二.代码互评

代码比较1:

同学1的代码 我的代码
c语言I作业11_第5张图片 c语言I作业11_第6张图片

代码分析:

  • 形式上类似方法截然不同,while语句和循环语句结构是有所区别的。首先是数组的运用就有些许不一样,然后就是while语句和for循环语句的结构不同,体现出来的是两种不同的思路,互相去理解掌握,也是学习c语言的一个方法。

三.学习总结

3.1 学习进度条

日期 这周所花时间 代码行 学到的知识简介 目前比较迷惑的问题
第一周(9.19-9.27) 1小时左右 28 c语言初步了解 格式的正确运用
第二周(9.27-10.4) 2小时左右 20 markdown格式的运用 怎么样让排版更加美观整齐
第三周(10.4-10.11) 5小时左右 104 if-else语句的运用 题目逻辑掌握不到位,分析问题的能力有待提高
第四周(10.11-10.18) 5.5小时左右 92 循环语句的运用 循环体的编写以及结构的多种变化理解不透彻
第五周(10.18-10.25) 8小时左右 90 调用函数的运用 还是很多时候循环体计算式不能写对
第六周(10.30-11.02) 7小时左右 133 分支函数的运用 分支函数的多种形式理解不到位
第七周(11.4-11.8) 5小时左右 105 switch语句的运用 switch语句的理解以及用法不到位
第八周(11.12-11.16) 6小时左右 99 循环语句的进一步理解和运用 伪代码的正确书写
第九周(11.18-11.22) 5小时左右 98 循环语句嵌套的运用 语句逻辑难以理清
第十周(11.26-11.29) 5小时左右 94 编程打印题目的掌握 题目的分析以及其思路看出来有些困难
第十一周(12.3-12.6) 7小时左右 154 函数调用,以及全局变量局部变量的理解 调用函数不能完全理解它的用法,不知道怎么去运用它,怎么用什么时候用

3.2 累积代码行和博客字数

c语言I作业11_第7张图片

3.3 学习内容总结和感悟

3.3.1 学习内容总结

c语言I作业11_第8张图片

3.3.2 学习体会

  • 这是这个学期最后一次作业了,很明显地可以感觉得到这次作业的难度很大,甚至是题目都需要看很久才能看懂题目的意思。
  • 这周也较为繁忙,作业完成地仓促,由于题目的难度较大,此次作业完成的时间较长。
  • 也希望自己也不要畏惧这些难题吧,现在不太不会不代表以后不会,加油吧!

你可能感兴趣的:(c语言I作业11)