这个作业属于那个课程 | C语言程序设计|| |
---|---|
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 弄懂自定义函数的使用方法和技巧 |
这个作业在那个具体方面帮助我实现目标 | 函数的构建和使用 |
参考文献 | 作业评价标准 |
PTA作业完成情况:
题目名:6-1 编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。
数据处理:
数据表达:定义了两个整型变量s和i。
数据处理:使用了while语句和取余(i=m%10),此函数题中运用到了顺序结构和循环结构。
函数参数:主函数为 int main( ) 被调函数是 int fun(n)其 为整型 。其中实参是m,形参是int(m)。
实验代码截图:
题目名:6-3 本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=1^3+5^3+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0.
数据表达:定义了三个整形变量b,s,g。
数据处理:使用了if-else 语句,此函数中运用了顺序结构和选择结构。
函数参数:主函数为int main () 被调函数是 int func(const int N)其为整型。
实验代码截图:
输入数据 | 输出数据 | 说明 |
---|---|---|
12 | The result is 1 | 题目样例 (6-1) |
123 | The result is 0 | 按照程序计算m=123时的值 |
1234 | The result is 1 | 按照程序计算m=1234时的值 |
输入数据 | 输出数据 | 说明 |
---|---|---|
153 | 1 | (6-3) 题目样例 |
256 | 0 | 按照程序计算N=256的结果 |
666 | 0 | 按照程序计算N=666的结果 |
PTA提交列表及说明:
因为PTA的不可抗拒因素导致难得寻找自己的PTA提交列表,所以就没有截图。(我较早就写完了PTA,然后被大量的提交掩盖了)下方配上6-1的代码图,然后再写出我犯过的错误:
Q1:在自学whlie语句的基础上,我使用了whlie语句(whlie:直到“某个值”再输出,也是一种循环语句),但发现返回的值错误。
A1:在Dev上调试后发现自定义函数中的return后方应当加一个定义,即s算出来后除以5余数是0
Q2:在Dev上调试的时候总会遇见报错【Error】 expected unqualified-id before '{'token.
A2:在仔细对照书本样例和观察下发现在自定义函数后不需要加分号(在声明函数的时候要)。
Q1:刚开始将b,s,g定义为浮点变量,老是出现答案错误。
A1:运用Dev调试查看数据发现输出来的全是小数,导致答案错误。将变量都改为整型的就对了。
Q2:引用数学函数pow发现用不了,编译错误。
A2:看清题目很重要,作业只需要写自定义函数部分,于是将if后方部分改为b·b·b+s·s·s+g·g·g==N,完成编译。
代码互评:
我的代码:
同学的代码:
明显的发现,他在定义变量的同时也将值定义给了需要的变量,且定义得很特殊,为0.0 (直接赋值学到了。)
第二个他在此代码中引用了数学函数,而我并没有,但往下看的时候令人费解的是,他并没有用到数学函数,所以我觉得他大可删去。防止错误 ,我按照他的代码在Dev上运行了一次(删去了include <math.h>)并无大碍,正常运行。
再者,三个整型变量其实是可以写在一起的,没有必要在提一行来重新定义变量。
学习总结:
学习进度条
日期 | 这周所花的时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
10/7--10/13 | 10+个小时 | 100+ | if-else语句,多种运算符、少数运算规则等 | 理解每个代码意思和语句的使用 |
10/13--10/20 | 6+个小时 | 100+ | 学习for循环语句 | 熟悉利用for语句 |
10/20--10/27 | 5+个小时 | 100+ | 学习了函数的自定义 | 熟练的自定义函数和使用 |
学习内容总结:
学习体会:
通过这周的学习我还是想强调一件事:自主学习很重要,例如这此PTA的第四题,对于哥德巴赫猜想我甚至还不知道,这是一种变相的无知。
对于这次的作业,我自认为难度有所上升,耗费了挺多的时间和精力,收获确实也不少。写作业一写就是一天,一直面对着电脑,只有能发现其中的乐趣,才能坐的住,也才能写得出(然后我就写出来了)