这个作业属于哪个课程 | C语言程序设计I |
---|---|
这个作业要求在哪里 | 作业链接 |
我在这个课程的目标是 | 熟练掌握C语言,能独立完成简单项目,毕业前想做出一个简单的游戏 |
这个作业在那个具体方面帮助我实现目标 | 知道函数的分类,理解各种变量的生存期与作用域 |
参考文献 | 作业评价标准 |
1、PTA实验作业
1.1统计某类完全平方数
问题描述:本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
1.1.1 数据处理
- 数据表达:定义了整型变量A,i,j,k,数组a[10]和n;浮点型n;A当作临时变量用来替代原数据N,i、j均为for语句用来计数的变量,K用来记录N的每一位上的数,a[10]用来计算每个数据出现了几次,n表示N的算数平方根。
- 数据处理:
伪代码如下
定义整型变量i,j,k,a[10];
for循环初始化数组a;
定义浮点型变量n,用来表示N开根号;
if(N是完全平方数)//用到的floor函数百科
{
定义整形变量A,临时替代N;
while语句记录各位上的数出现的次数,储存在数组a中;
for循环一次读取数组a的数据;
if(有任意一个数据出现了两次)
return 1
}
return 0
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
105 500 | cnt = 6 | 样例,正确 |
45 324 | cnt = 4 | 随机数,正确 |
1.1.4 PTA提交列表及说明
- 1、运行超时:for循环出现逻辑错误,导致死循环。
- 2、编译错误:出错的for语句修改成while语句后,除号打成了。
1.2统计各位数字之和是5的数
问题描述:本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
1.2.1 数据处理
- 数据表达:第一个函数中,定义了i,sum和N,分别表示各位上的数,各位上数的和,输入的数据;第二个函数中,定义了i,count和sum,分别表示区间内每个数,满足条件的数有多少个,满足条件的数之和。
- 数据处理:
伪代码如下
第一个函数;
定义整形变量i,sum=0,N=number;
while(.....)计算各位数之和;
if(sum==5)
返回1;
else
返回0;
第二个函数;
定义整形变量i,sum=0,count=0;
for(...)分别取出区间内所有数;
{
if(i代入第一个函数)
{
count++;
sum+=i;
}
}
输出count,sum;
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
104 999 | 104 is counted. count = 15, sum = 3720 | 样例,正确 |
203 500 | 代码运行图 | 随机数,正确 |
1.2.4 PTA提交列表及说明
- 1、答案错误:while语句终止条件错误,写成了i!=0,第三个表达式出现逻辑错误,写成了i=i/10。
- 2、部分正确:只改了第三个表达式,未发现终止条件出错,改正后答案正确。
2、代码互评
同学代码
我的代码
- 1、该同学只用了3个for循环就算出了结果,且答案正确,代码很简洁。
- 2、我用了6个for语句,很麻烦且很杂乱,虽然答案正确,但别人很难看懂,作为一名程序员,让别人看懂你的代码是很重要的一个能力,由此可见我的不足之处--不够精炼,以后定当多修改,让代码尽量简洁完整无误。
3、学习总结
3.1 学习进度条
日期 | 这周所花的时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
10/7--10/13 | 9+个小时 | 100+ | 编写if-else语句,算术运算与赋值运算规则等 | while语句的使用以及适用范围 |
10/14--10/20 | 8+个小时 | 190+ | for的使用,if-else与for的组合使用 | while与for的区别 |
10/21--10/27 | 6+个小时 | 340+ | 定义函数与调用 | 对函数的定义与调用不熟悉 |
10/28--11/3 | 6+个小时 | 260+ | if-else的镶嵌结构 | 用太多if-else会比较混乱 |
11/4--11/10 | 6+个小时 | 170+ | switch语句的基本运用 | switch与if-else的区别 |
11/11--11/17 | 6+个小时 | 120+ | while语句的使用 | 什么是指针 |
11/18--11/24 | 6+个小时 | 90+ | continue的使用以及其与break的区别 | 什么是指针,长度可变数组与长度固定数组的区别和适用情况 |
11/25--12/01 | 7+个小时 | 160+ | for语句的嵌套 | 函数的分类 |
12/02--12/08 | 9+个小时 | 170+ | 函数类型,变量生存期与作用域等 | 任意混淆全局变量与局部变量,静态变量与动态变量的关系 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
- 答:1、这周所学内容较多且易混淆,所以需要花更多时间来消化理解,PTA作业基础题难度明显增加,挑战题甚至能做好几个小时,还不一定做得出来,容易炸心态。但学习就是如此,你不让它臣服于你,它就让你生不如死。开个玩笑,总之这周的学习还是有些难度的,我也会尽力克服,努力跟上节奏。
- 2、其次就是关于期末考试,考试临近心情还是有些激动的,当然也有点慌,学了一个学期很想知道自己学得怎样,但又怕考砸了丢人而且自己心里也不好受,所以复习就显得尤为重要,快考试了所以课很少,不妨在闲余时刻多看看书,不要老想着打游戏,不仅耽误学习还伤身体。