C语言I博客作业09
C语言I博客作业09
作业头
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11530 |
这个作业属于那个课程 | C语言程序设计II |
我在这个课程的目标是 | 深入函数 |
这个作业在那个具体方面帮助我实现目标 | 进一步熟悉函数的使用 |
参考文献 | c语言程序设计(第三版) |
学号 | 20208955 |
二、PTA实验作业(20分/题)
排名图片
1.1
第一题
6-2 统计各位数字之和是5的数 (20分)
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
1.1.1
数据处理
数据表达:使用了变量 函数整型a,b;函数整型number;整型n,s,a,c,sum;n是转换代替mumer;s是判断个个位数之和是否为5;a是各个位数的数值;c是给定范围内符合要求的个数;sum是给定范围内符合要求的个数之和。
数据处理: 表达式: a = n % 10,n = n / 10;
流程结构:一共使用了三个函数,一个主函数,两个副函数,两个副函数的主要作用分别是:
‘int is( int number );’:判断number的各位数字之和是否等于5,是则返回1,否则返回0。
‘void count_sum( int a, int b );’:利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。
1.1.2
实验代码截图
1.1.3
造测试数据
数据 | 结果 | 说明 |
---|---|---|
0 23 | 23 is counted.\n c=3,sum=42 | 从0开始 |
2 4 | c=0,sum=0 | 没有符合要求的可能 |
103 105 | c=1,sum=104 | 只有104一个符合 |
1.1.4
PTA提交列表及说明
说明
答案错误:在VS里面没有将题目的格式处理好就提交了。
编译错误:在while语句中,循环时括号错误。
1.2
第二题
6-1 统计某类完全平方数 (20分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
1.2.1
数据处理
数据表达:定义了 整型变量 M,i,j,数组a[10],x,m,n;M用来转换变量N即输入的数,i是多余的(提交时忘了删),j是用来初始化并与a[10]记录有多少余数的,x转换sqrt(N),n,m是循环判断有没有相同的的位数。
数据处理: 表达式:a[j++]=M%10,M=M/10,x*x==N;
流程结构:先做好前期准备,x是N开平方后的值。再循环记录各位数。再循环判断是否位数有相同的。最后再判断可不可以开平方。
1.2.2
实验代码截图
1.2.3
造测试数据
数据 | 结果 | 说明 |
---|---|---|
143 145 | cnt=1 | 只有一个符合条件 |
0 1 | 0 | 没有符合条件的 |
1 100 | cnt=1 | 正常数值 |
1.2.4
PTA提交列表及说明
说明
部分正确:没有将a[j]=M加上去,开始以为没必要,其实这是要用来储存最后一位数的
部分正确:开始时a[j++]是a[j]没有用来记录,储存数的作用。
三、代码互评
同学代码
第一位
第二位
自己
第一位
-
主要的区别还是同学用了函数,而我是用的while循环来输入棱形的组数,我的更加简单,方便。同学的更高层次,可以应对更多的情况。
-
总的棱形的输出都是差不多的。
-
都用了细节getchar()消掉最后的回车。
第二位
-
本质的思路与想法没有太大的差别。
-
同学的将一些小细节,一些转换直接套用,我的是分开要一步步来,我的更详细,同学的更熟练。
3.1学习总结(15分)
3.1 学习进度条(5分
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周 | 6小时 | 262 | 怎么输出内容 | 一些结构的定义 |
第九周 | 8小时 | 670 | 开始输入及套用公式 | 字符的一些定义 |
第十周 | 24小时 | 593 | 数组 | 迷糊流程,字符串,以及对题目的处理 |
第十一周 | 30小时 | 1034 | 函数 | 宏定义,对题目不能很好的反应过来 |
第十二周 | 32小时 | 2431 | EOF等一些基本知识,接触到了c++ | 对于一些函数还不能很好的运用 |
第十三周 | 32小时 | 2742 | switch的灵活运用 | 用函数去表达素数 |
第十四周 | 28小时 | 2324 | which,do while 循环 | 将之前所学的知识结合起来运用,循环会乱 |
第十五周 | 28小时 | 2453 | 熟悉break、continue的使用 | 循环逻辑有点混乱 |
第十六周 | 33小时 | 2489 | 函数返回值 | 对于函数还不够熟练,没有经常性的用到 |
3.2累积代码行和博客字数(5分)
时间 | 博客字数 | 代码行数 |
---|---|---|
第八周 | 585 | 262 |
第九周 | 1031 | 670 |
第十周 | 1289 | 593 |
第十一周 | 1413 | 1034 |
第十二周 | 1664 | 2431 |
第十三周 | 1998 | 2742 |
第十四周 | 2453 | 2324 |
第十五周 | 1902 | 2453 |
第十六周 | 2017 | 2489 |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会