码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-01-01 21:58:34      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:定义变量   sign   表示   std   oid   指针的指针   管理   main   img   

---恢复内容开始---

一、实验作业

学生成绩管理系统要求

1.1 PTA题目

6-5 递归实现顺序输出整数

  • 设计思路

    输入数字n
    调用函数 printdigits(n)
    {定义变量res表示顺次输出的数字
    IF n/10=0
    res←n    递归出口
    否则
    调用函数printdigits(n-1)
    res←n%10
    输出res
  • 代码截图
    技术分享图片

  • 调试问题

    当判断条件为n=0时输入一位数时结果有错,改为n/10=0即可

    技术分享图片

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

技术分享图片

三、阅读代码

登一定数的台阶有几种方法

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static int step[128];
static int m = 1;
int count(unsigned int n);
void cout(int n,int t);
int main()
{
int a;
    unsigned int n;
    while(1){
printf("请输入需要登上的台阶数量:");
scanf("%d",&n);
a = count(n);
printf("登上%d个台阶共有%d种方法!分别如下:\n",n,a);
cout(n,0);
                m=1;
    }
system("pause");
return 0;
}
int count(unsigned int n)
{
    if(n == 1)
        return 1 ;
    if(n == 2)
        return 2 ;
    else 
        return count(n - 1) + count(n - 2) ;
}
void cout(int n,int t)
{
    int i,j;
    if(n<0)
    return ;
if(n == 0)
    {
printf("第%d种方法:",m);
for(j=0;j<t;j++)
            printf("%d ",step[j]);
m++; 
printf("\n");
    }
    else
    {
for(i=1;i<=2;i++)
{
step[t] = i;
cout(n-i,t+1);

}
    }
}

该函数输出了一个数字的所有之和为该数字的子数字排序,在递归前设置静态全局变量就能够实现递归时变量不会重置的状况

四、本周学习总结

  • 学习了递归函数和带参数的宏
  • 可以设置指针数存放指针变量和设置函数指针,使指针指向函数
  • 定义二级指针指向指针的指针
  • 可以用malloc()函数可以设置动态内存避免空间浪费,用free()函数释放内存

学习体会

  • 对于工程文件学习得还是有些懵,不是很理解。

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

标签:定义变量   sign   表示   std   oid   指针的指针   管理   main   img   

原文地址:https://www.cnblogs.com/LHLH/p/8168725.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!