问题 | 回答 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 熟练使用for的循环语句,对函数的定义和调用有初步的认识,能模仿编程 |
这个作业在那个具体方面帮助我实现目标 | 在PTA上进行编程,观察他人代码 |
参考文献 | 思维导图,《C语言程序设计》 |
1.PTA实验作业
1.1 题目1:
编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。
1.1.1数据处理
数据表达:使用了整形变量n和sum,n是在函数声明中就已经被int定义,而sum是在后面使用int定义
数据处理:首先运用while语句对sum=sum+n%10*n%10和n=n/10式子进行循环结构的运算,然后运用if-else语句对sum%5是否=0进行判断和判断结果的返回
函数参数:主调函数:main()被调函数:fun(int n) 实参:m 形参:n 被调函数类型是变量
1.1.2实验代码截图
1.1.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
520 | The result is 0 | 520的各位数字平方之和不能被5整除 |
818 | The result is 0 | 818的各位数字平方之和不能被5整除 |
67 | The result is 1 | 67的各位数字平方之和能被5整除 |
1.1.4 PTA提交列表及说明
说明:
1.答案错误:sum=sum+n%10*n%10式子中的乘法误写成了加法,这是自己粗心所导致的,仔细观察后发现了错误
2.部分正确:循环结构中缺少了n=n/10式子,对题目理解不深刻,后查阅资料明白需要用此式子把n压缩一位
1.2 题目2:
本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。
1.2.1 数据处理
数据表达:使用了整形变量a,b,c,N,其中N是在函数声明里定义的,其余的是在后面使用int定义的
数据处理:首先分别用a=N/100,b=N/10-a10,c=N-(a100+b10)三个式子表示一个整数的个位,十位和百位,然后用aaa+bbb+cc*c==N式子和if-else语句判断这个三位数的每一位上数字的立方和是否与数本身相等
函数参数:主调函数:main(){} 被调函数func(const int N) 实参:N 形参:N 类型是变量
1.2.2 实验代码截图
1.2.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
325 | 0 | 不是水仙花数 |
727 | 0 | 不是水仙花数 |
818 | 0 | 不是水仙花数 |
1.2.4 PTA提交列表及说明
说明:
1.编译错误:式子aaa+bbb+cccN中的双等号我用的等号,对=与的理解不够深刻,后翻书明白=是赋值,==才代表等于
2.部分正确:式子c=N-(a100+b10)忘加括号
2.代码互评
同学代码截图
自己代码截图
1.该同学运用了while的循环结构进行计算
2.该同学仅用两个式子就表示了三位数每一位上数字的立方和,而我则使用了三个式子分别表示个位,十位与百位,再用一个式子进行每一位上数字的立方和的运算
3.相比之下我的代码比较复杂,但是我的更加容易读懂
同学代码截图
自己代码截图
1.该同学用的是+=而我还不是很熟练,虽然没什么差别,但是还是简便一点
2.可以看出该同学的有些代码其实是多余的,比如最后的return m其实没必要
3.学习总结
3.1 学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
10.20~10.27 | 20h | 178 | 学会了如何使用调用函数,如何制作思维导图 | 不能使用代码做比较困难的作业, 比如此次的哥德巴赫题目 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
1.本周的PTA作业完成的并不好,很大程度上的借用了百度的帮助,还是因为自己的代码的理解程度不够全面,最后的哥德巴赫题目在百度的帮助下也根本看不懂
2.本周的机课我遇到了一点困难,导致我整节课所做的事并不多,但回到寝室后我自己解决了困难并且比较轻松的完成了课上没完成的作业
3.这次的作业我学习到了很多,书上还没开始讲的代码我通过查阅资料也有了一定的了解,比如while的语句,学会了如何调用函数使代码更加简便