C语言I博客作业05

二、本周作业头##

这个作业属于那个课程|C语言程序设计II
--|:--😐:--
这个作业要求在哪里|https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9825
我在这个课程的目标是|较为熟练的掌握对函数的定义与生成乘方表与阶乘表,同时学会使用思维导图。
这个作业在那个具体方面帮助我实现目标|PTA有关生成乘方表与阶乘表的函数题,MindManager软件的应用。
参考文献|百度百科,C语言程序设计,思维导图

1.PTA实验作业###

1.1判断一个整数的各位数字平方之和能否被5整除####

1.1.1数据处理
数据表达:用了a,h,n,i,result1;h表示该整数的各位数;a表示把n的值赋给a;i表示循环起点,n表示循环终点;result1表示整数各位数的平方和。
数据处理:1.条件表达式:if(result1%5==0) 2.逻辑表达式:for(;n>0;n/=10),3.算术表达式:result1+=h*h;取余h=n%10;
使用了for循环语句与if-else语句。
函数参数:主调函数:int main() 被调函数:int fun( int n ) 类型int型;实参:fun(m),形参:(int n)。

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
m=1 The result is0 1的平方不能被五整除
m=2 The result is1 5的平方恰好能被五整除
m=34 The result is1 3和4的平方和能被五整除
m=145 The result is0 1和4和5的平方和不能被五整除

1.1.4 PTA提交列表及说明

1.编译错误:include单词手快打错了。
2.编译错误:第四行的分号忘打了。
3.编译错误:使用pow函数忘了编写#include<math.h>。
4.编译错误:放弃pow函数,第五行忘了打分号。
5.编译错误:result%5少打个=导致是赋值的意思。
6.编译错误:没检查出来,同第六条一样。
7.编译错误:最后的大括号忘打了。

1.2使用函数验证哥德巴赫猜想####


1.2.1数据处理

第一个函数####

数据表达:用了i,result, p;i表示循环起点;result表示结果,result 0表示不是素数。p表示输入的整数。类型:int型
数据处理:1.条件表达式:if(p<2),if(p%i0)。2.逻辑表达式:for(i=2;i<=sqrt(p);i++) 3.算术表达式:p%i0。
流程结构:if-else语句,for循环语句。
函数参数:主调函数:int main()。被调函数:int prime( int p ) 。 类型:int型;
形参:prime( int p );实参:prime(m)

第二个函数####

数据表达:用了n,p,q;p表示最小素数,q表示输入整数减去最小素数;n表示输入整数。类型:int型。
数据处理:1.逻辑表达式:for(;p<= n;p=p+2) ;2.条件表达式:if (prime(p)&&prime(q)) ;3.赋值表达式:int p = 3。
函数参数:主调函数::int main()>。 被调函数:void Goldbach( int n)。类型:int型。
形参:Goldbach( int n); 实参:Goldbach(i)。
1.2.2实验代码截图
第一个函数:

第二个函数:

1.2.3造测试数据

输入数据 输出数据 说明
m=6,n=6 无,6=3+3 6不小于6,但6也不是素数。
m=4,n=7 无,6=3+3 4小于6,所以已经跳出循环。
m=89,n=100 89is a prime number;90=7+83, 92=3+89, 94=5+89, 96=7+89, 98=19+79,100=3+97 89大于6且为素数,而后的就是素数分割。
1.2.4 PTA提交列表及说明
1.部分正确:i<=sqrt(p)该条件没有取等与号
2.部分正确:i<=sqrt(p)该条件没有取等于号
3.编译错误:没有编写result=1;
4.答案错误:第一个函数没有判断小于2的情况。
5.答案错误:没有看清题意,而把最小素数定为偶素数2;
6.答案错误:把p=p+2编写为p=p+1;
7.答案错误:把return result;该语句放在for循环内导致错误。
8.编译错误:在第二个函数中少打了个大括号
9.编译错误:if(p%i==0)该语句中少打了等于号。
10.答案错误:for(i=2;i<=sqrt(p);i++)该语句中把sqrt单词达成sprt。

2.代码互评###

自己代码|同学代码(刘帅同学)
--|:--😐:--
|
不同点:1.我是通过使用for循环而解答该题,而刘帅同学是通过使用while语句来解答该题
2.相比我的代码刘帅同学的显得更加的精简。
3.刘帅同学的while中n不等于0表示当n等于0时跳出循环,而我的也是表达这样的意思;只是书写方法不同

自己代码|同学代码(高中同学)
--|:--😐:--
|
不同点:1.这份代码是我问我以前同学发给我的代码,他的代码也运用了while语句而我只是单纯的for循环。
2.他这份代码思路比较清晰,而且标明了代码的所表达的意思。他运用了pow函数而我简单的运用了乘法原理。
3.相比他的代码,我的代码比较简易;但他的代码更加让人能看懂。

3.学习总结###

3.1 学习进度条####

周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题
--|:--😐:--😐:--
10/19-10/26|15h|334行|如何编写自定义函数及更加熟练掌握for循环|自定义函数关系的建立

3.2 累积代码行和博客字数####

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会
经过一周的学习,又学到了许多新的知识,从这一周开始我接触到了自定义函数;自我感觉这才是真正开始,而一开始学习自定义函数就来个哥德巴赫猜想;使我懵的一批;
从开始的一点思路都没有到通过自我思考有了一点点思路。但最终通过百度百科找到了突破口;在哥德巴赫猜想这个题中,加强了我对for循环以及if-else语句的了解;同时也
让了解到了编写程序不是看看书就能编写出来的;需通过自己不断的试验;有句话说得好“实践是检验真理唯一标准”;需要花费自己大量时间去琢磨,去认真的体会代码的含 义。
同时学习到了在自定义函数的时候,要注意被调函数与主调函数之间的关系。而且在本周的学习当中又接触到了一个新的知识点,那就是思维导图;个人认为思维导图可以很好
地帮助我们去总结知识点,同时使我们的知识构架越来越清晰。能有效的提高我们的总结能力。

posted @ 2019-10-26 17:38  曾子豪  阅读(164)  评论(4编辑  收藏  举报