问题 | 回答 |
---|---|
这个作业属于哪个课程 | C语言程序设计ll |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10127 |
我在这个课程的目标是 | 熟练掌握运用各语法,独自写出代码解决许多计算题,编写出一个小程序 |
这个作业在哪个具体方面帮助我实现目标 | 选择题帮助更好的理解了概念,函数题帮助我更好的掌握语法 |
参考文献 | 《C语言程序设计》 百度 CSDN |
1. PTA实验作业
1.1 题目6-1 统计某类完全平方数
题目内容描述:本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
1.1.1 数据处理
- 数据表达:定义了整型变量n,m,定义了数组a[10]
数据处理:使用了嵌套循环
int IsTheNumber ( const int N )
{
定义n,m;
n = N的根方并取整;
m = n*n;
if(m == N)
{
定义大小为10的数组a,同时a内所有元素均初始化为0;
while(m>0)
{
定义i,i = m % 10;
a[i]++计算有多少个这样的整数;
if(a[i]==2)
{
满足条件,返回1;
}
m = m/10;
循环计算
}
}
return 0;
}
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个完全平方数 |
1.1.4 PTA提交列表及说明
提交列表说明:
- 编译错误:用的不是数组,然后写的整个代码好像都有问题
- 编译错误:a[10]={0}写成了a[10]=0
- 编译错误:a[i]++写成了i++
- 编译错误:n=(int)sqrt(N1.0)写成了n=sqrt(N1.0)
- 编译错误:m == N写成了m = N
- 编译错误:int IsTheNumber ( const int N )后面加了个分号
1.2 题目6-2 统计各位数字之和是5的数
题目内容描述:本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
1.2.1 数据处理
- 数据表达:定义了整型变量n,sum,i
数据处理:使用了while语句,if-else语句,for语句
{
定义n;
定义sum,赋初始值为0;
n = number;
while(n)
{
sum = sum+n%10;取余求和
n = n/10;去除个位数
}
if(sum == 5)如果各位数字之和等于5
{
返回1;
}
else
{
返回0;
}
}
void count_sum(int a, int b)
{
定义count,赋初始值为0;
定义sum,赋初始值为0;
for (int i = a; i <= b; i++)
{
if(is(i))调用函数
{
count++;
sum = sum+i;计算所有符合条件的值之和
}
}
输出sum,count;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
104 999 | ![]() |
104至999间有15个满足要求的数 |
1 10000 | ![]() |
1至10000间满足要求的数之和为77770 |
100 9990 | ![]() |
100至9990间有50个满足要求的数 |
1.2.4 PTA提交列表及说明
提交列表说明:
- 运行超时:我不知道错在哪,然后改了好几个地方
- 编译错误:for语句的条件中有一个分号写成了逗号
- 编译错误:没有定义i,直接写了i=a
- 编译错误:没有给sum赋初始值
- 编译错误:没有写表达式n=number
2. 代码互评
同学1代码截图
同学2代码截图
自己代码截图
代码对比
- 同学1使用了do-while语句,同学2的嵌套循环中使用了两个while语句
- 同学1使用了if(a>b)进行判断,我没有她进行她的这一步
- 同学2使用了两次if-else语句,还有两个不同意义的return 0;
- 我的代码和同学1的代码还是有很大一部分相似的,同学2的代码最简短,感觉很独特,我不是很明白她的代码,是一种值得学习的方法
3. 学习总结
3.1 学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
7/10.9-7/10.11 | 21小时 | 120 | else-if从句,关系运算 | PTA显示的答案错误究竟是什么 |
8/10.16-8/10.18 | 15小时 | 84 | 用for语句计算简单的序列和 | 双精度浮点型变量的定义 |
9/10.23-9/10.26 | 16小时 | 102 | 学到while语句的一点点知识,对自定义函数了解了一点 | while语句的具体用法 |
10/10.30-10/11.2 | 14小时 | 145 | 多分支结构,逻辑运算符 | 当分支较多时不太会使用if,else,for |
11/11.6-11/11.8 | 14小时 | 143 | 利于switch语句处理多分支选择问题 | 伪代码的具体定义 |
12/11.13-12/11.15 | 15小时 | 75 | 使用while语句进行循环计算 | do-while语句和while的区别还不是特别理解 |
13/11.20-13/11.22 | 13小时 | 91 | 使用continue语句进行循环,使用嵌套循环进行计算 | 还是有点分不清break语句和continue语句的区别 |
14/11.27-14/11.29 | 13小时 | 125 | 对循环结构进行了巩固复习和总结 | 当遇到比较复杂的嵌套循环时会出现混乱 |
15/12.4-15/12.6 | 15小时 | 101 | 函数的声明,调用,参数的传递 | 函数的调用,数组的定义 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第四周 | 596 | 32 |
第五周 | 1288 | 54 |
第七周 | 2240 | 174 |
第八周 | 3254 | 364 |
第九周 | 6124 | 512 |
第十周 | 8085 | 796 |
第十一周 | 9625 | 1030 |
第十二周 | 11172 | 1185 |
第十三周 | 14142 | 1356 |
第十四周 | 15742 | 1567 |
第十五周 | 17427 | 1748 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
- 看到这周的题目第一感觉就是难,同学也基本说不知道怎么做,然后就上网搜资料,一直错,一直错,特别绝望
- 做了思维导图,这周的知识点在脑海中有了个大致的框架,但还是很懵,感觉函数好难
- 挺担心c语言的考试的,学了一学期了,我感觉没什么大的进步,每次作业做的时候都是非常迷的