这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11635 |
这个作业的目标 | 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型 |
学号 | 20208987 |
1.PTA实验作业(20分/题)
1.1. 统计各位数字之和是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 造测试数据
1.1.4 PTA提交列表及说明
答案错误:在VS里面没有将题目的格式处理好就提交了。
编译错误:在while语句中,循环时括号错误。
1.2统计某类完全平方数 (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 造测试数据
1.2.4 PTA提交列表及说明
部分正确:没有将a[j]=M加上去,开始以为没必要,其实这是要用来储存最后一位数的
部分正确:开始时a[j++]是a[j]没有用来记录,储存数的作用。
2.代码互评(5分)
同学代码截图1.
同学代码截图2.
自己代码截图:
1.第一位同学主要的区别还是同学用了函数,而我是用的while循环来输入棱形的组数,我的更加简单,方便。同学的更高层次,可以应对更多的情况。
2.总的棱形的输出都是差不多的,都用了细节getchar()消掉最后的回车。
3.第二位同学的将一些小细节,一些转换直接套用,我的是分开要一步步来,我的更详细,同学的更熟练。
3.学习总结(15分)
3.1 学习进度条(5分)
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
本周学习了各种类型函数的定义、调用和申明,以及变量的作用域、生存周期和存储类型
3.3.2 学习体会
1.这次pta作业太难了,一个人自己去做简直难的怀疑人生.
2.通过自己的摸索虽然不能完全搞懂,但收获还是挺大滴嘛.
3.遇到难题一定要冷静冷静,克服这种问题.提高思维能力.
4.在做完题目后还是应该多找些方法,看是否还有别的解题过程.
5.和他人交流也是很重要的,加油少年.