一、实验作业

1.1 PTA题目:递归法对任意10个数据按降序排序

1.1.1设计思路

void  sort(int a[],int n)
{
定义整型循环变量i,中间变量temp,最小值min;
令min等于a[10-n];
for i=10-n to i<10
如果(a[i]小于min){
交换a[i]和min的值;
}
end for
令a[10-n]等于min;
if(n不等于0)
返回sort(a,n-1);
}

1.1.2代码截图

1.1.3调试问题

  • 本题没有遇到较大问题,就是每次转换过程中找最小值的时候出现错误,导致所有的值都变成了最小值0

1.2 学生成绩管理系统

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

1.2.2 截图展示你的工程文件,如:

1.2.3 函数代码部分截图

student.h

main.c



input.c



modify.c

del.c

output.c

sort.c

search.c

1.2.4 调试结果展示

输出:要求输入规范的操作(最开始的时候输出提示)

A新增学生信息

输入三个学生信息,按学号排序

插入一个学生信息,按学号排序

插入的学生已存在

B修改学生成绩

修改学生成绩成功以及指令错误时修改失败

C删除学生信息

要删除学生不存在以及删除成功后

D排序

按平均分和总分排序(结果相同)

E查找

查找不到时以及查找到

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

A新增学生信息时遇到已存在的学生,需提示已存在并重新输入新学号。

在提示存在后即使输入未存在的学号也是显示已存在!

B插入和删除后的排序,本来也是找到位置然后插进去和左移对应个数,但是一直出错,就改成了最后的全部排序。

C学生的平均分和总分的排序,本来写了两个过程,但是按自己之前的写法其实平均分和总分的排序过程及结果都是一样的,所以我觉得只要写一个就好了。

D修改分数时找不到学生(和增添情况有点相似)

把flag=0作为循环条件之一,若存在该学生即可退出循环。

代码总行数:235

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

三、阅读代码

排列问题

运行结果

一个关于1,2,3排列的程序
  • 首先把交换两个数的值写成另外函数,因为用到比较多的次数,这样调用的时候就比较方便,代码阅读性比较好;
  • 利用递归来分别列出每一种情况。

四、本周学习总结

1.介绍本周学习内容

递归函数(该函数调用它本身自己,这种调用过程称为递归)

  • 递归可以相当于循环,所以想结束递归,就必须有终止递归的出口。
  • 递归最大的优势就是简洁,适合解决阶乘、涉及相反顺序的编程问题,但是递归快速耗内存,而且不方便阅读和维护。

宏的用途

(1)符号常量,如PI,数组大小定义,已增加程序的灵活性
(2)简单的函数功能实现,如#define Max(a,b) a>b?a:b
(3)当程序中需要多次书写一些相同内容时,相当于全部变量的用途,可将其简写成宏。
//宏定义中括号要十分注意(对变量加上括号,可提高替换后的运算优先级,有效避免宏替换带来的副作用,保证宏替代的正确性)

文件包含

文件包含格式:#include<需包含的文件名>
或#include"需包含的文件名"
常用标准头文件
ctype.h 字符处理
math.h 与数学处理函数有关的说明定义
stdio.h 输入输出函数中使用的有关说明和定义
string.h 字符串函数的有关说明和定义
stddef.h 定义某些常用内容
stdlib.h 杂项说明
time.h 支持系统时间函数

二级指针

类型名 **变量名
A(即B的地址)是指向指针的指针,称为二级指针,用于存放二级指针的变量称为二级指针变量。

学习体会

  • 学习了别人写代码的风格,有很多可以借鉴之处。
  • 二维指针是指针的升级版,理解起来更困难,它的初值以及指向都十分重要。
  • 写了大文件:虽然过程很艰辛,但是收获很大,终于可以自己写一个大程序了,虽然还功能不是很完善。
  • 明白了递归的过程:



    刚开始做预习的时候还不太明白递归的意义,不知道它是一步一步递归回去的,还以为它只是最后的那个结果而已。

C语言博客作业—函数嵌套调用的更多相关文章

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

    一.实验作业(6分) 本周作业要求: 选一题PTA题目介绍. 学习工程文件应用,设计实现学生成绩管理系统. 学生成绩管理系统要求 设计一个菜单驱动的学生成绩管理程序,管理n个学生m门考试科目成绩,实现 ...

  2. C语言第十一次博客作业---函数嵌套调用

    一.实验作业 1.1 PTA题目 题目:递归实现顺序输出整数 1. 本题PTA提交列表 2. 设计思路 printdigits函数 定义整型变量result存放结果 if n是10的倍数 result ...

  3. C语言博客作业——函数

    一.PTA实验作业 题目1:6-6 使用函数输出水仙花数 1.本题PTA提交列表 2. 设计思路 int narcissistic( int number ) //函数定义 1.定义整数型变量a.i分 ...

  4. C语言博客作业—函数

    一.PTA实验作业 题目1:使用函数输出水仙花数 1. 本题PTA提交列表 2. 设计思路 (1)首先定义函数narcissistic(number)判断number是否为水仙花数: (2)narc用 ...

  5. C语言博客作业--函数

    一.PTA实验作业 题目1 (6-7) (1).本题PTA提交列表 (2)设计思路 设计第一个函数判断是否完数int factorsum( int number ) 定义sum.i:sum初始化归0, ...

  6. C语言博客作业--函数 陈张鑫

    一.PTA实验作业 题目1:6-3 使用函数判断完全平方数 1. 本题PTA提交列表 2. 设计思路 1.定义int IsSquare( int n )函数 2.判断(sqrt(n)是否为整数 3., ...

  7. C语言博客作业06——结构体&文件

    C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...

  8. C语言博客作业6---结构体&文件

    C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...

  9. C语言博客作业5--指针

    C语言博客作业5--指针 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里 ...

随机推荐

  1. 关于webpack,打包时遇到的错误

    最近在研究webpack这玩意,然后遇到一个问题,执行npm run build的时候,出现下面这个问题,各种搜索后,各种尝试,都没解决 运行时报错ERROR in ./src/app.vue Mod ...

  2. 深度学习框架: Keras官方中文版文档正式发布

    今年 1 月 12 日,Keras 作者 François Chollet‏ 在推特上表示因为中文读者的广泛关注,他已经在 GitHub 上展开了一个 Keras 中文文档项目.而昨日,Françoi ...

  3. position:absolute的发现。

    使用.box{ width:100px; height:100px; background:red; position:absolute; left:0; right:0; top:0; bottom ...

  4. 【BZOJ1415】【NOI2005】聪聪和可可(动态规划,数学期望)

    [BZOJ1415][NOI2005]聪聪和可可(动态规划,数学期望) 题面 BZOJ 题解 先预处理出当可可在某个点,聪聪在某个点时 聪聪会往哪里走 然后记忆化搜索一下就好了 #include< ...

  5. 自言自语WEB前端面试题(一)

    刚刚得到通知,明天可能要放半天假,开心的像个200斤的傻子 我怕真是个傻子,是后天 今天的我是依旧痛经的我 于是我又来写博客了 原来,博客竟是痛经良药 接下来请看题,此题,0难度,基本不需要动脑子 J ...

  6. fitnesse - 用例创建编辑、管理、执行和日志

    fitnesse - 用例创建编辑.管理.执行和日志 2017-10-09 目录 1 用例创建编辑  1.1 用例创建  1.2 用例编辑2 用例管理3 用例测试执行和日志  3.1 用例测试执行  ...

  7. 关于java构造函数,静态代码块,构造代码块,和普通代码块相关总结(一)

    构造函数.构造代码块和静态代码块容易混淆,它们的执行条件和执行顺序也常常容易犯迷.这里就针对这些问题说一下我个人的一些理解,顺便对这部分内容做个小结. 一.构造函数 格式:类名(参数1,参数2,-){ ...

  8. C++输入输出总结_输入

    1. 输入输出的本质 C++中的输入输出都是通过流来进行的,而具体的输出输入都是通过对流进行操作来完成的,一般为定向一个流(重定向),清空流,向流里边添加新的元素.C++把输入输出看做字节流,输入时从 ...

  9. 初学Python3 - 写一个登录程序

    本篇主要实现一个简单的登录程序,默认给出一个账号密码,贴出写的代码及过程中遇到的问题. ----------------------------------------要求如下: username p ...

  10. python第二篇博客,关于数据类型的详细讲解

    数据,就是我们要存储的信息,因为信心种类很多,所以,数据种类也有很多 数字类型数据 整数int 表示年龄,手机号等等 浮点型float 表示身高,工资等带有小数点的数据 字符串类型数据 用来做描述性信 ...