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上的题目难多了,把那么多功能集合在一起时,就要考虑更多的东西