C语言博客作业--函数嵌套调用

一、实验作业

1.1 PTA题目(1分)

6-6 递归求简单交错幂级数的部分和

设计思路

    传入n,x
     如果n=1,返回x
     否则返回 x-x*fn(x,n-1)

代码截图

调试问题

  • 这一题一开始没有什么头绪,后来看到了最后一个式子才发现他们的规律是这样的,所以我一开始是打算定义一个flag来讨论n是奇数还是偶数来判断是加还是减。然后用了一个pow函数,一开始的计算式是pow(x,n)+fn(x,n-1);在用题目给的测试数据测试时得数一模一样,但是提交devc就是错的,所以后来就用别的数据测试了一下果然有问题。看来看去就是计算式有问题,所以后来就全部都改了,也不用flag就直接返回x-x*fn(x,n-1),后来就对了。

1.2 学生成绩管理系统

  • 本次工程文件长度190行,没有完全完成,删除学生信息那一块还没有做成。

1.2.1 画函数模块图,简要介绍函数功能。

1.2.2 截图展示你的工程文件

1.2.3 函数代码部分截图

  • 主函数:
  • 头文件:
  • 新建学生信息:
  • 添加学生信息:
  • 输出学生信息:
  • 按平均分给学生排序:
  • 查询学生信息:
  • 修改学生信息:

1.2.4 调试结果展示

= 主菜单:

= 新建学生信息:

  • 按平均成绩排序:
  • 查询学生信息:
  • 修改学生成绩:

1.2.5 调试碰到问题及解决办法。

  • 1.对这个系统真的有点无从下手,所以调试了好久连运行都过不了

  • 解决办法:后来参考了同学的代码发现自己的主函数里多了#include<stdio.h> #include<string.h> ,后来把这两个删去再修改一些别的地方就好了。

  • 2.输出了一堆莫名其妙的东西

  • 解决办法:我反复检查后发现是我的输出弄错了,我将分数定义成单精度浮点型输出时用的是%lf而且也没有控制小数点位数,后来改成%。2f就可以了。

二、截图本周题目集的PTA最后排名。

三、阅读代码

这个代码实现的功能是对一个数进行全排列,就以123为例,程序就是要输出123的所有排列方式

  • 之所以选这个代码是因为听说这是递归算法的经典应用,但是尴尬的是我并没有完全看懂他是怎么实现全排列的,如果有人看懂了麻烦告诉我一下。

四、本周学习总结

1.介绍本周学习内容

本周学习了一个很接近人类思维的函数---递归。递归写的代码可读性很强,而且只要找到第n项和n-1项的规律,不管什么类型的题目都可以简单化。但是递归也真的很浪费内存。本周还学习了怎样做一个工程文件,形成系统并实现一些简单的功能。这个系统的功能虽然很简单,但是比起之前写的程序不仅代码量多了好多,实现的功能也比之前多了不少。

2.学习体会

  • 通过这一周的学习我才感觉到自己学到了真正C语言的用途。之前写的程序都是只能实现一个单一的功能,让我的感觉就是完全不实用。因为那些功能都太简单,平时有谁会为了一个那么简单的功能去专门写这么一个代码呢?不现实。虽然我知道那些都是运用于实际的基础。即使现在做的系统也很简单,但是已经让我初步感受到了C语言的真正魅力。
posted @ 2017-12-31 22:57  晗光凡影  阅读(311)  评论(4编辑  收藏  举报