这个作业属于那个课程 |
C语言程序设计II |
这个作业要求在哪里 |
C语言I作业05 |
我在这个课程的目标是 |
学会使用函数fact(i)掌握阶乘的算法 |
这个作业在那个具体方面帮助我实现目标 |
在编写PTA作业的过程中,逐渐熟练 |
参考文献 |
集美大学林丽老师、C语言程序设计 |
1.PTA实验作业
1.1 题目名1
判断一个整数的各位数字平方之和能否被5整除
编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。
1.1.1数据处理
* 数据表达:图中有a,sum两个字母,使用的是整数型,其中a代表每次除以10的余数,sum代表各个数字的平方和。
* 数据处理:根据题意可得a=n%10,sum=sum+a*a。在使用if语句判断sum是否能被5整除。
* 函数参数:主调函数为int main(),被调函数为int fun(int n),都为整型函数。n为实参,a,sum为形参,它们都为整型参数。
1.1.2实验代码截图

1.1.3 造测试数据
输入数据 |
输出数据 |
说明 |
9 |
0 |
不能被5整除 |
56 |
0 |
不能被5整除 |
125 |
1 |
可以被5整除 |
1.1.4 PTA提交列表及说明

* 编译错误:忘记在a之间打上*号
* 编译错误:忘记在赋值语句后打上;号
* 编译错误:未理解清楚题目意思,将1和0的位置打反了
* 编译错误:if语句中未打两个等号
1.2 题目2
水仙花数判断
题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=1^3+5^3+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0.
1.2.1 数据处理
* 数据表达:图中有i,s,a三个整型字母,其中i=N代表输入的数,a代表i除以10的余数,s代表各个数字三次方的和。
* 数据处理:据题意可知N=i,a=i%10,s=s+a*a*a,利用while语句可算出各个数字三次方的值。
* 函数参数:主调函数为int main(),被调函数为int func(const int N),都为整型函数。其中N为实参,s,a都为形参,且都为整数参。
1.2.2 实验代码截图

1.2.3 造测试数据
输入数据 |
输出数据 |
说明 |
8 |
0 |
8的立方不等于8 |
26 |
0 |
2的立方加6的立方不等于26 |
228 |
0 |
2倍2的立方加上8的立方不等于228 |
1.2.4 PTA提交列表及说明

* 编译错误:第一行的被调函数后面加上了;号
* 部分正确:忘记打i=N
* 部分正确:将s=s+a*a*中的s忘记了
* 部分正确:s==N中的等号只打了一个
2.代码互评
同学代码截图

自己代码截图

* 该同学一开始便用了数学函数来计算次方,而我因为次方不多直接用的乘法,较简单一些。
* 在循坏上,我用了while循环,该同学用了for循环。for循环可以设置次数,而while循环条件满足没有次数限制。因此各有各的好。
同学代码截图

自己代码截图

* 相同:我与该同学一样设置了三个整型变量
* 不同:该同学直接给三个变量设置了三个表达式,将x,y,z一个个算出,而我依然使用的是while循环。同学的方法比较好理解,不过编写较麻烦,可以适当借鉴。
3.学习总结
1.3.1 学习进度条
周/日期|这周所花的时间|代码行数|学到的知识点简介|目前比较迷惑的问题
----------|---------------------|-------------------------------------|----------------------------
第四周|2天|28|学习语句的输出|无
第六周|4天|20|用 MinGW-w64 来编译C程序,学习编程计算温度的转化|无
第七周|3天|99|学习用if,else等语句编译程序|无
第八周|2天|75|学习使用循环语句,用for来编译程序|不太清楚整数型和浮点型该何时用
第九周|3天|94|学习各种使用函数eg:fact(i)|不太清楚函数中i代表什么
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结


3.3.2 学习体会
在本周的学习过程中我接触到了函数,不得不说的是函数不管是在数学里还是C语言中都是让人烧脑袋的一部分。从PTA的题目可以看出函数需要较强的逻辑性和理解力,还需要对函数的表达有一定的了解。学习内容越来越深入,难度、代码行数也在逐渐增多。因此为了跟的上题目的步伐,我们也该不断努力的提升自己。