本周作业头
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11530 |
我在这个课程的目标是 | 了解函数的分类和类型,熟悉变量的作用域、生存周期和存储类型 |
这个作业在那个具体方面帮助我实现目标 | 参考同学的代码,翻阅书籍 |
参考文献 | c语言程序设计(第三版) |
学号 | 20208928 |
1.PTA实验作业(20分/题)
**1.1 题目1统计某类完全平方数 **
题目描述:本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
裁判测试程序样例:
#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;
}
/* 你的代码将被嵌在这里 */
1.1.1数据处理
数据表达:定义整型变量.n1和n2,b为存储求取余余数的变量,定义p[10]数组,定义m为对n取开二次方后的整数部分。
数据处理:用了int=m=sqrt(n)函数对n进行取整开根,再判断m*m是否等于n;之后用while(n)循环,和for循环
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
100 506 | cnt = 7 | 正确 |
110 700 | cnt = 7 | 正确 |
1.1.4 PTA提交列表及说明
部分正确:将if(m*m==n)中m*m打成了m*n
1.2 题目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 = 这些整数的和
裁判测试程序样例:
#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;
}
/* 你的代码将被嵌在这里 */
**1.2.1数据处理**
数据表达:全定义为整型变量,函数int is( int number )判断给定正整数的各位数字之和是否等于5;函数void count_sum( int a, int b )统计给定区间内有多少个满足上述要求的整数
数据处理:第一个函数用while循环计算各数之和
while(number!=0){
t=number%10;
sum=sum+t;
number=number/10}
第二个函数计算满足整数的和
int s=0,c=0,i;
for(i=a;i<=b;i++){
if(is(i)){
c++;
s=s+i;
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
106 660 | count = 14, sum = 3616 | 代入正确 |
221 230 | 221 is counted.230 is counted.count = 2, sum = 451 | 代入正确 |
1.2.4 PTA提交列表及说明
编译错误:void count_sum( int a, int b )后面多加了“;”。
格式错误:printf("count = %d, sum = %d",c,s)忘记打空格
2.代码互评
同学代码1
同学代码2
我的代码
对比:1.第一位学长的方法非常好,简单又好,值得我好好学习。
2.第二位同学的也比我好,只输入了一次字符串,我看完她的代码,觉得我把问题又复杂化了。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|
第十六周12.15-12.20 | 51 | 各种类型函数的定义、调用和申明 | 还不太了解变量的作用域、生存周期和存储类型 |
第十五周12.8-12.14 | 45 | 学习break和continue的使用 | 不太清楚两者区别 |
第十四周12.1-12.7 | 40 | 学习while循环结构 | 对while和for循环的区别使用还不够熟练 |
第十三周11.23-11.30 | 26 | 学习switch-case结构 | 不太理解if-else和switch-case的区别 |
第十二周 11.11-11.22 | 25 | 调用函数,了解char字符型变量,熟悉if-else分支结构 | if-else的多种分支嵌套不太懂 |
第十一周 11.10-11.14 | 20 | 定义和调用函数 | 不太懂清楚定义函数和调用函数的顺序和什么时候该定义函数 |
第十周 11.2-11.8 | 19 | for循环结构 | 不是太熟悉for结构中什么语句应该包含循环 |
第九周 10.26-11.1 | 18 | if-else语句 | 不太理解if-else和else-if多分支结构的区别 |
第八周 10.19-10.25 | 16 | 对C语言的基本认知 | 没有 |
3.2 累积代码行和博客字数(5分)
时间 | 博客字数 | 代码行数 |
---|---|---|
第八周 | 1007 | 15 |
第九周 | 537 | 50 |
第十周 | 1250 | 102 |
第十一周 | 1450 | 160 |
第十二周 | 1521 | 155 |
第十三周 | 1425 | 203 |
第十四周 | 1611 | 256 |
第十五周 | 1704 | 305 |
第十六周 | 1650 | 384 |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
每个人的学习进度条都在进步,自己同时也在努力,我认为现在参考别人的代码可以对自己有进一步的提升和认识,了解他们的思维思路,对自己也有一定帮助,相互借鉴,相互进步。
还有就是还是要多练习代码,提高知识熟练度以及巩固。还有我觉得PTA的作业真的难,我觉得可以降低难度,平均水平一下。