您的位置:首页 > 编程语言 > C语言/C++

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

2018-01-01 20:11 281 查看
---恢复内容开始---

一、实验作业

学生成绩管理系统要求

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()函数释放内存

学习体会

对于工程文件学习得还是有些懵,不是很理解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: