C语言博客作业--函数嵌套调用
一、实验作业
1.1 6-4 十进制转换二进制
- 设计思路
如果n=1或n=0 输出n
否则{
把n/2作为参数传入函数
最后递归回去输出n%2的值
}
- 代码截图
- 调试问题
一开始我只把0当成特殊数,然后发现如果最后的n/2是1的话递归回去还会出现一个0
所以我把1和0都当成临界值发现一个1变成0了,要把输出部分改成输出n的值
1.2 学生成绩管理系统
1.2.1 画函数模块图,简要介绍函数功能
1.2.2 截图展示你的工程文件
1.2.3 函数代码部分截图
- 本系统代码总行数:256
- 1.2.4 调试结果展示
新增人数过多,重新输入
二、截图本周题目集的PTA最后排名
三、阅读代码
/* 递归实现顺序输出整数*/
#include <stdio.h>
void printdigits( int n );
int main()
{
int n;
scanf("%d", &n);
printdigits(n);
return 0;
}
void printdigits( int n ){
if(n>=0&&n<=9) printf("%d\n",n); // 最后一位直接输出
else{
printdigits(n/10); // 和十进制转二进制类似,先让n/10作为参数调用函数
printf("%d\n",n%10); //最后递归回来刚刚好是顺序排列
}
}
- 该代码实现了顺序输出整数,一开始我想的是类似以前做个的顺序输出整数,让先求余再除以10,然后发现只能逆序输出,而该代码让n/2作为参数一直调用直到n在0~9之间,由于递归的机制让原本逆序变成顺序输出
- 而且代码量少,言简意骇
四、本周学习总结
本周主要是学习大程序结构
- 其目的是为了防止代码太长从而把它分成多个函数
- 1个.c文件就是一个编译单元,编译器每次编译只处理一个编译单元
- 所以要建项目,把多个源代码加进去,编译器就会把所有源代码文件都编译后链接起来
- 把函数原型放在一个头文件(.h结尾)中在需要调用这个函数的源代码文件中,就能够让编译器编译时直到函数原型
- <>时让编译器到指定目录下去找文件,而“”要求编译器首先在当前目录寻找文件,如果没有,到指定目录下去找文件