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语言的考试的,学了一学期了,我感觉没什么大的进步,每次作业做的时候都是非常迷的