一、实验作业
1.1 PTA题目:6-1 递归实现指数函数
设计思路
double result//用于返回主函数
if(n==1){//递归出口
result=x;
}
else{
result=x*calc_pow(x,n-1);
}
返回result
代码截图
1.2 学生成绩管理系统
1.2.1 画函数模块图,简要介绍函数功能。
1.2.2 截图展示你的工程文件
1.2.3 函数代码部分截图(要求截图你的头文件、插入学生信息及学生成绩信息代码、删除学生成绩信息代码、总分排序代码。代码中务必加入必要的注释。)
1.2.4 调试结果展示(要求分别展示菜单、每个命令运行结果,对非法数据必须有检验并提示,如用户学号输入非法、或者输入重复学号,提示插入失败。查询不到相应学生信息给予提示等等。)
1.2.5 调试碰到问题及解决办法。
二、截图本周题目集的PTA最后排名。
三、阅读代码
全排列
从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。
如1,2,3三个元素的全排列为:
1,2,3
1,3,2
2,1,3
2,3,1
3,1,2
3,2,1
inline void Swap(int &a,int &b)
{
int temp=a;
a=b;
b=temp;
}
void Perm(int list[],int k,int m)
{
if (k == m-1)
{
for(int i=0;i<m;i++)
{
printf("%d",list[i]);
}
printf("n");
}
else
{
for(int i=k;i<m;i++)
{
Swap(list[k],list[i]);
Perm(list,k+1,m);
Swap(list[k],list[i]);
}
}
}
采用递归算法来实现全排列,优点是在递归时可以输出每次所有的排列方式。相当于循环语法,但是它更加直观,不必考虑更多的情况。
四、本周学习总结
1.介绍本周学习内容
- 1.#define 宏名,宏定义字符串是任意字符串,中间可以有空格,以回车符做结束,宏定义可以嵌套使用
2.递归要注意设置出口
2.学习体会
感觉这周更是晕,对于知识的记忆只有递归比较深的记住了大概,其他内容未能及时回顾,就如同白学了一般,忘了差不多。要在接下来的几周里好好回顾之前的知识啊。