C语言博客作业--函数嵌套调用
一。题目
1.1 PTA题目:6-6 递归求简单交错幂级数的部分和
1.设计思路
double fn( double x, int n ){
定义一个数sum存放输出的值。
if(n==1 返回 x;
else{sum=(sum+fn(x,n-1))*(-x)+x; \\表示每次递归时都以这样的方式算出,前一个算式乘上-x在加上x,这样便可以实现特定算式的输出
最后返回sum的值;
}
2.代码截图
3.本题调试过程碰到问题及解决办法
-
问题:递归出来后算式后会多出来加1;
-
解决办法:后面1改为x,这样每次都以'(x^2-x)*(-x)+x'这样便可以输出正确的值。
1.2 学生成绩管理系统
一共375行。
1.2.1 画函数模块图,简要介绍函数功能。
按由右至左,分别进行如下功能:
-
1:能够新增学生信息,并按照学号排序
-
2:修改学生成绩信息。
-
3:删除学生成绩信息。
-
4:输出显示所有学生成绩信息,按学号排序
-
5:能够分别按照总分和平均分进行排序。
-
6: 能够根据学号查询学生信息。
-
7:退出系统。
1.2.2 截图展示你的工程文件
1.2.3 函数代码部分截图
-
(1)头文件:
-
(2)主函数:
-
(3)新增:
-
(4)修改:
-
(5)删除:
-
(6)显示所有学生成绩信息。(按照学号排序):
-
(7)能够分别按照总分和平均分进行排序:
-
(8)能够根据学号查询学生信息:
特征点测试:
-
(1)学号不规范:
-
(2)学号重复:
1.2.4 调试结果展示
-
(1)添加学生信息:
-
(2)修改成绩:
-
(3)删除:
-
(4)显示:
-
(5)能够分别按照总分和平均分进行排序
-
(6)查询学生信息:
1.2.5 调试碰到问题及解决办法
-
出现了此类错误;添加新文件,应该用'New file'而不是用'添加(A)';
-
插入排序应该将插入弄进下一个数便可;而我直接吧他前一个数直接覆盖掉了;
二、截图本周题目集的PTA最后排名。
1.PTA排名
三、阅读代码(1分)
-
6-7 递归法对任意10个数据按降序排序:用递归法对任意10个数据按升序排序。
- ![](http://images2017.cnblogs.com/blog/1232112/201712/1232112-20171231165053273-1584293128.png) - 他的功能是通过递归使只用一次循环便可以将其按照降序排列;优点:通过将循环i赋值为n-2使只需用if而不用else便可以将其完成,减少代码量;
四、本周学习总结
1.介绍本周学习内容
1.1.1宏基本定义
'#define 宏名 宏定义字符串'
1.1.2宏的用途
-
(1)可以定义字符常量,如可以:'define pi 3.14159'
-
(2)可以定义某些简单的函数
-
(3)可以为程序书写带来方便,例如如果一个很长的字符需要多次输出,则可以用宏定义的来代替他
1.1.3带参数的宏定义
如可以这样定义:'define sqr(x) xx'.但要注意的是,如果使用时x=x+y,那么他输出的值是‘x+yx+y’,如果要算‘(x+y)(x+y)’要将‘xx’改为‘(x)*(x)’
1.2.1文件包含的格式
-
1.' #include<stdio.h>' 它是由c系统预先设置好的include文件夹中的指定文件包含起来;
-
2.'# include '“需包含的文件名”,一般是自己设定的包含文件。先在当前文件夹查找,若找不到则再去系统文件找;
1.2.2一些标准头文件
-
(1)'#include<etype.h>'字符处理;
-
(2)'#include<math.h>'与数学有关的说明与定义;
-
(3)'#include<stdio.h>'输入输出函数中使用的有关说明和定义;
-
(4)'#include<string.h>'字符串函数有关说明和定义
-
(5)'#include<stddef.h>'定义某些常用内容;
-
(6)'#include<stdlib.h>'杂项说明
-
(7)'#include<time.h>'支持系统时间函数。
1.2.3编译预处理
- ‘#if....#else...#end if’,与if else语句不同,当一条程序能够执行时就会自动舍弃另外一段程序
1.2.4文件模块间的通信
-
(1)需要用到全局变量,在主函数程序使用全局变量;
然后在其他函数使用extern 来实现函数间的通信。 -
(2)在一个函数内需要调用另一文件内的函数,要使用‘extern 函数类型 函数名 ’完成调用
2.学习体会
-
(1)对于链表这个还是不懂,怎么用,为什么用,完全看不懂。书上的内容看了好几遍,依旧是云里雾里。
-
(2)做了项目后突然代码量变得大了很多,再加上有的时候好几个程序文件都有错误时会使这个项目崩溃,而且有时候明明定义了一个全局变量,在其他文件内使用这个变量时,会出现。
-
(3)学习如何写程序,过程很痛苦,有时候一点点错误(如加不加换行符)就会使程序崩溃。有时候题目很简单,但思路却很难找到。有时候找到思路了,写的时候,越往下写,发现要考虑的东西也多,代码量也越大。一般别人用很少的代码就可以而我却会用很多甚至一倍的代码才写出来。不过当你将它写出来,特别是你自己做完一个程序,并且运行成功且正确时,心里很高兴的。