C语言I博客作业05
问题 | 答案 |
---|---|
这个作业属于哪个课程 | c语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/9827 |
我在这个课程的目标是 | 熟练使用C语言 |
这个作业在那个具体方面帮助我实现目标 | pta习题,学习使用思维导图 |
参考文献 | https://www.cnblogs.com/muhongxing/archive/2009/12/22/1628782.html |
1.PTA实验作业
1.1本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=13+53+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0.
1.1.1数据处理
- 数据表达:N,x,y,分别为输入的值,代替N进行运算的值,各位数之和。
- 数据处理:用到了x<1000&&x>100,y=(x%10)(x%10)(x%10)+y等表达式。结构类型为选择结构和循环结构。
*主调函数为main(),被调函数为func(int N),N为形参,int类型;实参也为N。
1.1.2实验截图代码
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
153 | 1 | 题目要求 |
999 | 0 | 三位数上限 |
1000 | 0 | 四位数 |
-153 | 0 | 负数 |
1.1.4PTA提交列表和说明
- 编辑错误:使用了pow来计算三次方,但头文件没有include<math.>,后来直接用三次连乘。
1.2 本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
1.2.1 数据处理
- 数据表达:p,y,z,n,j;分别为prime()函数的行参,除数,能被整除的次数,Goldbach( )函数的形参,能被分解的最小素数。
- 数据表达:p%y0,z++,z2,prime(n-j)0||prime(j)0,j++;结构流程为选择结构和循环结构。
- 主调函数为main(),被调函数为prime(),Goldbach(),形参分别为p,int类型;n,int类型;实参分别为m,int类型;i,int类型。
1.2.2 实验代码截图
1.2.3 造数据测试
输入数据 | 输出数据 | 说明 |
---|---|---|
89 100 | 89 is a prime number90=7+83, 92=3+89, 94=5+89, 96=7+89, 98=19+79,100=3+97, | 题目要求 |
1 3 | 无显示 | 最小值 |
1 15 | 6=3+3, 8=3+5, 10=3+7, 12=5+7, 14=3+11 | 较小值 |
1.2.4PTA提交列表及说明
- 在dev c++ 上实验无数次,花费近两小时,PTA一次过,实际错误忘了。
2.代码互评
- 同学代码
- 自己代码
同学代码考虑到代码要求在三位数,故未使用循环语序取各位数,我在写的时候思维惯性按照上一题选择了循环语句,同学的的代码好处在于一目了然,较简单。
3.学习总结
3.1 学习进度条
| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
| - | - | - |
| 10/18-10月26| 12小时 | 90 | 自定义函数的声明和调用 | for循环和while循环各自的利弊 |
3.2 累积代码行和博客字数
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
- PTA习题一次比一次难,这一次的第四题第一次让我感觉到了无从下手的感觉,但是仔细一步一步慢慢来还是能够写出来的,
还是要多刷这种“高难度”的题目提升自己。