C语言博客作业--函数嵌套调用
一、实验作业
1.1 PTA题目 6-3 递归计算P函数
设计思路
在函数P内定义一个双精度浮点型变量y用来储存运算结果
如果(n==0)
return 1
如果(n==1)
return x
如果(n>1)
y=1.0*((2*n-1)*P(n-1,x)-(n-1)*P(n-2,x))/n
return y
代码截图
调试问题
本题遇到的主要问题是对于变量类型掌握不清楚而导致的计算结果错误,通过调试解决。
1.2 学生成绩管理系统
头文件:
主函数代码:
控制函数代码:
求平均分,总分,以及按成绩排序代码:
修改学生成绩函数代码:
查询学生成绩函数代码:
删除学生成绩函数代码;
输入学生成绩函数代码:
输出学生成绩函数代码:
二、截图本周题目集的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.介绍本周学习内容
本周学习了递归函数与递归的应用,简单地说,递归就是编写这样一个特殊的过程,该过程体中有一个语句用于调用过程自身。递归过程由于实现了自我的嵌套执行,使这种过程的执行变得复杂起来,可以运用递归算法解决很多复杂的问题。
还学了函数嵌套,函数的嵌套调用是在函数调用中再调用其它函数,函数的递归调用是在函数调用中再调用该函数自身。
同样可以通过函数嵌套调用来解决很多复杂的问题
2.学习体会
虽然这一周学习的知识都能听懂,但是实际应用和掌握不是太清楚,所以还要多学习,多练习,将这部分内容完全掌握。