C语言博客作业--函数嵌套调用

本文分享了关于递归函数的学习心得,包括递归的基本概念、递归出口和递归式子的理解,并通过猴子吃桃问题展示了递归的实际应用。此外,文章还介绍了在学生成绩管理系统开发过程中遇到的问题及解决方法。

一、实验作业

1.1 PTA题目

  • 设计思路
if n=1 返回
else 
  i for  0  to n-1
    if(a[i]>a[i+1])交换
    n=n-1调用自身函数 
  • 代码截图
    1232108-20171230211142710-713857298.png

  • 调试问题
    本来不用循环的,但是想来半天还是用上循环,不知道有没有不用循环的做法

1.2 学生成绩管理系统

1.2.1 画函数模块图,简要介绍函数功能。
1232108-20171231092845413-894477074.jpg

1.2.2 截图展示你的工程文件
1232108-20171231092933351-678931758.png

1.2.3 函数代码部分截图

本系统代码总行数:367
1232108-20171231093350992-469603408.png

1232108-20171231095505413-183922468.png

1232108-20171231100550773-12327290.png

1232108-20171231100557663-503450026.png

1232108-20171231100602851-1179788972.png

1232108-20171231100607726-261929621.png

1232108-20171231100613320-1549450229.png

1232108-20171231100621398-91994408.png

1232108-20171231100626929-81540153.png

1.2.4 调试结果展示
1232108-20171231101524710-902720698.png

1232108-20171231101534242-886266339.png

1232108-20171231101540679-2044506942.png

1232108-20171231101546992-2096061690.png

1232108-20171231101553945-755936286.png

1232108-20171231101748398-129705176.png

1232108-20171231101759163-1867566608.png

1232108-20171231101804648-1078930254.png

1.2.5 调试碰到问题及解决办法。
开始时编译都过不了,然后又建了一个工程,拷进去才可以,还有我的增加函数的学号显示不出来,不知道为啥
1232108-20171231102050132-743710764.png

二、截图本周题目集的PTA最后排名。

1232108-20171231184726429-1811170644.png

三、阅读代码

猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,问第一天共摘下来多少个桃子?并反向打印每天所剩桃子数。

#include<stdio.h>
#include<process.h>

int main()
{
    /*打印最初的桃子数量*/
    printf("%d\n", f(1));
    system("pause");
    return 0;
}

/*第day天剩下的桃子数*/
int f(int day)
{
    int n;
    if(day==10)
        n=1;
    else
    {
        /*第day天(左)和第day+1天(右)所剩桃子的关系式*/
        n=(f(day+1)+1)*2;
        /*由于递归规律,直接倒序打印*/
        printf("第%d天所剩桃子%d个\n", day, n);
    }
    return n;
}
//一个复杂的问题用递归就很简单地解决了,主要是要找出关系式

四、本周学习总结
1.介绍本周学习内容

  • 递归函数(不断地调用自身)
    1.递归出口,即递归的结束条件
    2.递归式子,递归的表达式
  • 宏定义,用宏来定义一些符号常量,可以方便程序的编制,带参数的宏定义和函数相似,但实质不同,宏是单纯的替换,函数是调用
  • 文件包含,建立工程,编写一个大型的系统时,更好地分类,实现程序的结构化
  • 二级指针 类型名 **变量名
    2.学习体会。
    学到后面已经有点深奥了,特别是二级指针,有点绕不过弯来,还有写一个系统是真的不容易,要考虑方方面面,有时候实现了这个功能,就无法实现另一个功能,这时就要重新构架,删了改,改了删,而且还会出现一堆看不懂的错误,还有过了编译却跟自己预期的不一样的错误,又不知道错哪了

转载于:https://www.cnblogs.com/hbw985609191/p/8151416.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值