C语言博客作业—函数嵌套调用
一、实验作业
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语言博客作业—函数嵌套调用的更多相关文章
- C语言博客作业--函数嵌套调用
一.实验作业(6分) 本周作业要求: 选一题PTA题目介绍. 学习工程文件应用,设计实现学生成绩管理系统. 学生成绩管理系统要求 设计一个菜单驱动的学生成绩管理程序,管理n个学生m门考试科目成绩,实现 ...
- C语言第十一次博客作业---函数嵌套调用
一.实验作业 1.1 PTA题目 题目:递归实现顺序输出整数 1. 本题PTA提交列表 2. 设计思路 printdigits函数 定义整型变量result存放结果 if n是10的倍数 result ...
- C语言博客作业——函数
一.PTA实验作业 题目1:6-6 使用函数输出水仙花数 1.本题PTA提交列表 2. 设计思路 int narcissistic( int number ) //函数定义 1.定义整数型变量a.i分 ...
- C语言博客作业—函数
一.PTA实验作业 题目1:使用函数输出水仙花数 1. 本题PTA提交列表 2. 设计思路 (1)首先定义函数narcissistic(number)判断number是否为水仙花数: (2)narc用 ...
- C语言博客作业--函数
一.PTA实验作业 题目1 (6-7) (1).本题PTA提交列表 (2)设计思路 设计第一个函数判断是否完数int factorsum( int number ) 定义sum.i:sum初始化归0, ...
- C语言博客作业--函数 陈张鑫
一.PTA实验作业 题目1:6-3 使用函数判断完全平方数 1. 本题PTA提交列表 2. 设计思路 1.定义int IsSquare( int n )函数 2.判断(sqrt(n)是否为整数 3., ...
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...
- C语言博客作业6---结构体&文件
C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...
- C语言博客作业5--指针
C语言博客作业5--指针 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里 ...
随机推荐
- eval及json的理解
一,案例一 <br><br> 复制代码 var str = '{"name": "hanzichi", "age": ...
- 异常-----Template user.ftl not found
freemarker 1.错误描述 java.io.FileNotFoundException: Template user.ftl not found. at freemarker.template ...
- Linux之shell典型应用之脚本实现
一. 提取Linux操作系统信息 二. 获取操作系统运行状态 三. 分析应用状态 四. 应用日志分析 第一章:VIM编辑器设置 一.语法高亮 syntax on/off 二.显示行号 set ...
- Xshell配色为ubuntu风格
背景 为了远程连接服务器,用Xshell作为连接工具,因为好(mian)用(fei),服务器是ubuntu的,因此看不习惯Xshell自带的黑白色,下面给出了ubuntu的配色方案,使用的时候直接导入 ...
- 【xsy2115】Delight for a Cat
Time Limit: 1000 ms Memory Limit: 512 MB Description 从前,有一只懒猫叫CJB.每个小时,这只猫要么在睡觉,要么在吃东西,但不能一边睡觉一边吃东 ...
- Android OpenGL ES 开发(十): 通过GLES20与着色器交互
1. 获取着色器程序内成员变量的id(句柄.指针) GLES20.glGetAttribLocation方法:获取着色器程序中,指定为attribute类型变量的id. GLES20.glGetUni ...
- Mybatis动态SQL单一基础类型参数用if标签
Mybatis动态SQL单一基础类型参数用if标签时,test中应该用 _parameter,如: 1 2 3 4 5 6 <select id="selectByName" ...
- 为什么覆写equals必须要覆写hashCode?
============================================= 原文链接: 为什么覆写equals必须要覆写hashCode? 转载请注明出处! ============= ...
- css样式加载顺序
css样式加载顺序: A: id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式 B: 如果要让某个样式的优先级变高,可以使用!important来指定: .clas ...
- python 中的 args,*args,**kwargs的区别
一.*args的使用方法 *args 用来将参数打包成tuple给函数体调用 例子一:def function(*args): print(args, type(args))function ...