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学习体会 描述本周学习感受,也可以在这里 ...
随机推荐
- iOS - Core Animation 核心动画
1.UIView 动画 具体讲解见 iOS - UIView 动画 2.UIImageView 动画 具体讲解见 iOS - UIImageView 动画 3.CADisplayLink 定时器 具体 ...
- jquery中的下拉框
1.1select获取选中的value值 <label for="select"> <select id="key_RedemptionMode&quo ...
- WPF自学入门(四)WPF路由事件之自定义路由事件
在上一遍博文中写到了内置路由事件,其实除了内置的路由事件,我们也可以进行自定义路由事件.接下来我们一起来看一下WPF中的自定义路由事件怎么进行创建吧. 创建自定义路由事件分为3个步骤: 1.声明并注册 ...
- 12-7jquery选择器学习
p:odd 选择奇数个数的p标签 p:even选择奇数个数的p标签 p:gt(n)选择下标 大于n的p标签 p:lt(n)选择下标小于n的p标签 $(":root " ...
- Java双等号,Equals(),HashCode()小结
默认情况 - 双等号==,比较的是内存地址. - equals(),默认比较的是内存地址. - hashCode(),默认返回的是object的内存地址. String中方法改写的情况 经常会遇到需要 ...
- 【BZOJ1997】Planar(2-sat)
[BZOJ1997]Planar(2-sat) 题面 BZOJ 题解 很久没做过\(2-sat\)了 今天一见,很果断的就来切 这题不难呀 但是有个玄学问题: 平面图的性质:边数\(m\)的最大值为\ ...
- HNOI2017 单旋
题目描述 网址:https://www.luogu.org/problemnew/show/3721 大意: 有一颗单旋Splay(Spaly),以key值为优先度,总共有5个操作. [1] 插入一个 ...
- 基于Redis的简单分布式锁的原理
参考资料:https://redis.io/commands/setnx 加锁是为了解决多线程的资源共享问题.Java中,单机环境的锁可以用synchronized和Lock,其他语言也都应该有自己的 ...
- Redis之Hash
一.Redis之Hash简介 1. Hash是一个string类型的field和value的映射表,适合用于存储对象. 2. 每个hash可以存储232-1个键值对(40多亿). 二.Redis之Ha ...
- 由html,body{height:100%}引发的对html和body的思考
html,body{height:100%} 今天看到一个CSS样式:html,body{height:100%},第一次看到,感觉挺奇怪,为什么html还需要设置height:100%呢,html不 ...