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结尾)中在需要调用这个函数的源代码文件中,就能够让编译器编译时直到函数原型
  • <>时让编译器到指定目录下去找文件,而“”要求编译器首先在当前目录寻找文件,如果没有,到指定目录下去找文件
posted @ 2018-01-01 21:58  Soyam  阅读(2189)  评论(1编辑  收藏  举报