这个作业属于那个课程 |
这个作业要求在哪里 |
我在这个课程的目标是 |
这个作业在那个具体方面帮助我实现目标 |
参考文献 |
1.PTA实验作业
1.1 水仙花数判断
本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=13+53+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0.
- 函数接口定义:
int func(const int N);
其中N是用户传入的参数。N的值不超过int类型的范围。如果参数N是水仙花数,则返回1,否则返回0。
- 输入样例:
153
- 输出样例:
1
1.1.1数据处理
数据表达:定义sum,x为整型变量,sum是用sum += (x % 10) * (x % 10) * (x % 10)计算每个数立方的和,由于N不可变,就把值赋给了x
数据处理:
函数参数:主调函数的名称main,被调函数的名称func,被调函数的类型为整型,形参N。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
153 | 1 | 素数 |
100 | 0 | 不是素数 |
0 | 1 | 代码条件不够充分 |
1.1.4 PTA提交列表及说明
1.运行超时:被调函数进入了死循环,把循环定义成了N,N一直不变循环就一直进行下去,把N改成x
1.2 使用函数验证哥德巴赫猜
本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
函数接口定义:
int prime( int p );
void Goldbach( int n );
其中函数prime
当用户传入参数p
为素数时返回1,否则返回0;函数Goldbach
按照格式“n
=p+q”输出n
的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须输出所有解中p最小的解。
输入样例:
89 100
输出样例:
89 is a prime number
90=7+83, 92=3+89, 94=5+89, 96=7+89, 98=19+79
100=3+97,
1.2.1数据处理
数据表达:函数prime定义变量,i为整型,函数Goldbach定义p,s为整型。
数据处理:
函数参数:主调函数main
,被调函数prime
、Goldbach
,被调函数prime
为整型,定义的形参,被调函数Goldbach
为空,定义的形参。
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
89 100 | 89 is a prime number | 89是素数 |
0 0 | 无 | 直接结束 |
1.2.4 PTA提交列表及说明
1.部分正确:函数Goldbach循环条件不正确,while的条件我是写的p-q,后面改成prime(s) != 1 || prime(p) != 1。
2.部分正确:函数prime条件没有满足素数的要求,没有考虑1不是素数和2,3是素数。
3.部分正确:函数prime条件没有考虑小于0.
2.代码互评
同学代码截图
自己代码截图
- 1.他是把一个数的各位都先求出来,再求值,我是利用循环求余一次循环求一个值的3次方。
- 2.他用了函数
pow
,我是直接一个是成了3个。 - 3.我是用循环求的,要改4位数5位数比较简单,他的想改就的重写。
- 4.他定义i为返回的值,我是直接判断是素数直接返回1,不是就返回2。
同学代码截图
自己代码截图
- 1.函数Goldbach我用的是while循环,他用的是for循环,他是先判断p是不是素数,在判断q,我是直接用了
||
直接用一个判断条件写出来。 - 2.函数prime要的条件是一样的,但我写的没他的简便。
- 3.他的函数prime简便,我的函数Goldbach简便,我们要学习各自的优点。
3.学习总结
1.3.1 学习进度条
1.3.2 累积代码行和博客字数
1.3.3 学习内容总结和感悟
1.3.3.1 学习内容总结
1.3.3.2 学习体会
- 学习c语言一个多月了,越是学的多越难,现在学到函数,感觉比之前的要难好多,网上经常说c语言从入门到入土,但是我觉得越是难的我越是想要解决他,我们在部队有一句口号经常喊
只要思想不滑坡,办法总比困难多
,这次学习总结:
1.函数分为库函数和自定义函数
2.库函数是能直接调用的函数,而自定义的函数要自己去定义它的功能
3.使用函数,能够把一个程序分成一块一块的,每一块的功能都不一样,这有利于编程,主函数是用来汇总这些分支的,把功能都整合到一起。