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

一、实验作业

1.1 PTA题目6-4 十进制转换二进制

1.设计思路

定义x用于存储每一位二进制数
    若n<2,输出n,
    否则x=n%2存储2进制数,再次调用该函数
    输出x

2.代码截图

3.调试问题

  • 本题主要是函数出口错误,后来仔细阅读代码发现问题

1.2 学生成绩管理系统

1.2.1 画函数模块图,简要介绍函数功能

  • 代码总数266行

1.2.2 截图展示你的工程文件

1.2.3 函数代码部分截图

  • 主函数
  • 头文件
  • 查找
  • 排序
  • 显示
  • 修改
  • 删除
  • 添加

1.2.4 调试结果展示

新增学生我是让程序在遇到输入-前可以不断添加学生,在任意时候都可以返回主菜单
新增后按学号降序
删除成绩将删除的成绩用null代替成绩
修改成绩
排序
查找
基本功能都能实现,只是界面太丑了,还有一些显示什么的不够便捷。。

程序健壮性

  • 1.在输入命令时出现字母或其他字符
  • 2.新增学生时信息有错比如名字出现数字,学号出现字母,分数越界
  • 3.没有学生查找学生,删除成绩等

1.2.5 调试碰到问题及解决办法。

这一道题还有很多功能没有实现,等我后续慢慢完善吧....

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

三、阅读代码

/1.一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。
这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过
每个村子卖出多少只鸭子?
/

#include <stdio.h>  
int f(int n)  
{  
int num;  
if(n==8)//第7个村子过后,也就是到第八个村子时还有2只鸭  
{  
return 2;  
}  
else  
{  
num =(f(n+1)+1)*2; //递归调用  
printf("第%d个村子卖鸭子%d只\n",n,num/2+1);  
}  
return num;  
}  
int main()  
{  
int num = f(1);  
printf("总共赶鸭子%d个\n",num);  
return 0;  
}  

这题还有一个不用递归函数的做发,比较复杂,两个相比较就可以体现了递归的优越性

四、本周学习总结

  • 指针数组可以存放多个字符数组,指针数组中每一个元素都是字符数组的首地址,指针数组名是二级指针
  • 二级指针表示指针的指针
  • malloc()函数可以定义动态内存避免内存的浪费,最后要用free释放内存

学习体会

  • 本周学习了建立项目,这比pta上的题目难多了,把那么多功能集合在一起时,就要考虑更多的东西
posted @ 2018-01-01 15:48  Airoure  阅读(466)  评论(3编辑  收藏  举报