| 这个作业属于那个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10127 |
| 我在这个课程的目标是 | 学会独立写一些小程序 |
| 这个作业在哪个具体方面帮助我实现目标 | 学习定义函数,调用函数,学会运用数组 |
| 参考文献 | 《C语言程序设计》《C primer plus》百度 |
1.PTA实验作业

1.1 6-1 统计某类完全平方数
内容描述:本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
1.1.1数据处理
- 数据表达::定义了整型变量n,m,div,i,定义了数组a[10]
- 数据处理:使用了嵌套循环
begin
调用函数
{
定义变量并赋值;
m,n的表达式
if(m == N)
{
定义数组a,限制a内所有元素均初始化为0;
while(m>0)
{
定义i,i = m % 10;
循环;
if(a[i]==2)
{
满足,返回1;
}
m = m/10
}
end
1.1.2 实验代码截屏

1.1.3 造测试数据
| 输入 | 输出 | 说明 |
|---|---|---|
| 105 500 | cnt = 6 | 105至500间有6个完全平方数 |
| 100 200 | cnt = 3 | 100至200间有3个完全平方数 |
| 1 1000 | cnt = 9 | 1至1000间有9个完全平方数 |
| 1000 2390 | cnt=9 | 1000至2390间有9 个完全平方数 |
1.1.4 PTA提交列表及说明

列表说明:
* 没有正确定义函数,定义的时候就出现了问题
* 没有给变量赋值,导致错误
* a[10]={0}写成了a[10]=0
1.2 6-2 统计各位数字之和是5的数
内容描述:要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
1.2.1 数据处理
- 数据表达:定义了整型变量n,sum,i
- 数据处理:使用了while语句,if-else语句,for语句
begin
{
定义变量并且赋值;
n = number;
while语句
{
sum = sum+n%10;取余求和
n = n/10;去除个位数
}
if-else语句判断
}
定义函数
{
重新定义变量
for循环
调用函数
{
count++;
sum = sum+i;所有满足条件数和
}
输出
end
1.2.2 实验代码截图

1.2.3 造测试数据
| 输入 | 输出 | 说明 |
|---|---|---|
| 1 99 | count = 6, sum = 165 | 1-99之间有6个满足要求且它们之和为165 |
| 100 999 | count = 15, sum = 3720 | 100-999之前有15个满足要求且他们之和为3720 |
| 1000 9999 | count = 35, sum = 73885 | 1000-9999之间有35个满足要求且他们之和为73885 |
| 104 999 | count = 50, sum = 3720 | 104-999之间有35个满足要求且它们之和为3720 |
1.2.4 PTA提交列表及说明

列表说明:
* if语句中的条件和输出出现矛盾,导致错误
* 定义新函数时未给变量赋值,导致错误
* 输出应该为1,我搞成1了,导致错误
2.代码互评
同学代码截图
同学1:

同学2:

自己代码截图

对比:
* 同学1运用 do-while 语句,同时调用了函数
* 同学2的代码比较简洁,直接用while语句和if-else语句解决了这个问题
* 我不仅用了if-else语句,while语句,for循环,还定义了函数来解决这个问题,比较繁琐和复杂
3.学习总结
3.1 学习进度条
| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问提 |
|---|---|---|---|---|
| 第一周 | 6h | 74 | 学习基本的C语言语法和知识,初步了解和接触C语言 | 不知道自己编的程序的正真用法 |
| 第二周 | 13h | 102 | 学习了解C语言的一些基础模式和变量 | 无法正确的解释代码中不同量的意义 |
| 第三周 | 15h | 156 | 学习C语言的一些基本函数和变量模板 | 无法正确使用各类函数类型和变量类型 |
| 第四周 | 15h | 130 | for语句和循环结构 | 运用for语句时变量的控制及其循环时各表达式的书写 |
| 第五周 | 12h | 273 | 学习调用,定义,说明函数 | 无法正确运用各种函数,不明白什么时候定义什么类型的函数 |
| 第六周 | 16h | 270 | 学习使用分支结构,和if-else与分支结构的合并使用 | 对于分支比较复杂的无法正确的分层 |
| 第七周 | 7h | 109 | 学习switch语句,并且运用switch语句 | 不知道表示case范围时,该怎么用switch语句编写 |
| 第八周 | 9h | 89 | 学习do-while语句,并且掌握switch语句 | 不了解do-while语句使用时的条件 |
| 第九周 | 6h | 103 | 学习for语句的嵌套,比较好的解决了一些排列问题 | 无法正确确定for语句内部判断条件 |
| 第十周 | 6h | 112 | 能够根据实际情况,选择合适的算法、合理的循环结构,熟练的编写程序 | 无法将学习过的算法串到一起使用,无法快速的找到最准确的办法 |
| 第十一周 | 2H | 123 | 函数的声明,调用,参数的传递 | 无法正确定义和调用函数,相对而言凭空造一个函数比较难 |
3.2 累积代码行和博客字数

3.3.1 学习内容总结

3.3.2 学习体会
- 作业越来越难了不知道在搞什么东西了,临近期末慢慢悲伤害怕,挂科不知道怎么搞。
- 题目越来越难,时间越来越短,基本上PTA的题目都不是之间独立完成的,哎每次看到题目就悲伤。
- 对人生还是要抱有期待的,真难!