一、实验作业

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. BFS学习 Codeforces 301_div.2_Ice Cave

    C. Ice Cave time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  2. 使用AOP的好处

    原始代码的写法 既然要通过代码来演示,那必须要有例子,这里我的例子为: 有一个接口Dao有insert.delete.update三个方法,在insert与update被调用的前后,打印调用前的毫秒数 ...

  3. VMware下载安装及CentOS7下载安装

    我是在Windows10系统下,下载的VMware Workstation 12 1.下载虚拟机软件 安装包位置(里面有激活码):https://pan.baidu.com/s/1i5hn5lj 2. ...

  4. face landmark 人脸特征点检测

    1.ASM&AAM算法 ASM(Active Shape Model)算法介绍:http://blog.csdn.net/carson2005/article/details/8194317 ...

  5. python实现一般最小二乘系统辨识方法

    问题: 对于一个未知参数的系统,往往需要用到系统辨识的方法,例如对于一个单输入单输出系统: Z(k)+a1*Z(k-1)+a2*Z(k-2)=b1*U(k-1)+b2*U(k-2)+V(k) 其中:V ...

  6. Windows cmd命令反斜杠问题

    在Windows的终端输入命令的时候,如果在命令中存在斜杠就无法执行,因为它只支持反斜杠,而在Unix系统中是支持斜杠的,这是两者的区别.所以在Windows终端下执行命令需要注意斜杠问题

  7. Loadrunner11不能调用IE8解决方法大全

    刚安装了英文版的Loadrunner 11, 用的是IE8, 开始录制时没有启动IE, 试了网上很多的方法,最终解决了问题.总结一般产生问题的原因如下. 1.当你主机上有多个浏览器时,loadrunn ...

  8. python解决图的最短路径问题

    在hihoCoder上遇到一个算法题目,描述如下: 对图结构有了解的不难发现,这是经典的求图的最短路径问题.以下是python代码: def findMin(row): minL = max(row) ...

  9. The based of tuning

    调优目的: 1.  提高资源利用率 2.  找出性能瓶颈并缓解 3.  通过性能管理实现合理的资源分配,提升硬件性价比 调优分层及效率问题: 业务级调优  eg:1)网站使用的Apache—>业 ...

  10. 常用的Oracle函数收集

    to_char(); count(); avg(); sum(); to_date('时间','格式'); NVL(,); NVL2(); substr(); case   when  then   ...