一、实验作业

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

设计思路

如果n大于1   对n/2继续进行该函数运算
输出n%2的值

代码截图

调试问题

  • 我第一次做的时候判断的边界条件是大于0继续进行运算,但这样是错的,因为当n等于1时,n%2等于0,由于二进制是逆序输出,又因为这个0是放在开头的,可省略

1.2 学生成绩管理系统

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

1.2.2 截图展示你的工程文件

1.2.3 函数代码部分截图

  • 本系统代码总行数:210

  • 主函数

  • 新建

  • 修改

  • 输出全部

1.2.4 调试结果展示

  • 新建与输出

  • 修改及修改后

  • 删除

这个步骤我采用的是将要删除的学生后面的所有学生向前移一位,这样做的缺点就是最后的一个学生将会登记两次,目前我还没想到什么刚好的方法

  • 其他步骤因为有一些较大的错误,还未改正,在此无法贴出图片

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

  • 1、修改学生成绩的函数中,我忘了修改完后要重新计算平均分和总分了,后来运行结果不对,我才发现这个问题,然后再代码后加了计算
  • 2、我一开始把计算平均分和总分的函数写在addition里面,但是这样结果却是没有进行计算,所以我只好在输入完后直接计算平均分和总分
  • 3、查找学生信息的结果中联系方式会出错,目前还没找出它的错误= =

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

三、阅读代码

角谷定理:

  • 输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。

    如:输入22,

    输出 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

    STEP=16;
  • 程序实现:
#include<stdio.h>
int Fun(int m) //定义m为自然数
{
printf("%4d",m);
if(m==1)
return 1; //当m=1的时候返回1
if(m%2==1)
return Fun(m*3+1)+1;//m为奇数,返回它的三倍加1,后面的加一是步数加一
if(m%2==0)
return Fun(m/2)+1; //m为偶数,返回它的一半,同理后面的加一是步数加1
}
void main()
{
int m,n=0;
printf("请输入一个自然数:");
scanf("%d",&m);
n=Fun(m); //定义步数为n,并将m的值传递给形参
printf("\nSTEP=%d\n ",n);
}
  • 该题通过递归,省去繁琐的过程,较容易地得到结果
  • 其思路大致为:首先输入一个自然数m,调用函数Fun(int m),将m的值传给形参。每次进行判断如果是偶数返回Fun(m/2),是奇数返回Fun(m*3+1),递归调用Fun()函数,直到m=1的时候,返回1,调用结束。另外为了方便计算步数,可在判断是奇数时,直接返回Fun(m/2)+1,偶数同理。然后利用n=Fun(m),输出n的值即为运算的步数。

四、本周学习总结

1.介绍本周学习内容

一、指针进阶

  • 1、指针数组

    格式:类型名 *数组名[数组长度]

    优点:使用指针数组不会造成内存单元的浪费
  • 2、二阶指针

    一般格式:类型名 * *变量名
  • 3、命令行参数

    一般形式:命令行 参数一,参数二,参数三,······参数n

    命令名和各个参数用空格隔开,可以无参数

    注意:使用命令行的程序不能在编译器中执行
  • 4、指针作为函数返回值

    注意:不能返回在函数内部定义的局部数据对象的地址

2.学习体会。

  • 这周学习的知识都比较难,例如二阶指针,它的运算很复杂,容易出错,又比如链表,它的概念我现在也不是很了解(所以没在总结里写上他= =)
  • 指针数组是比较好用的,但使用起来也是比较复杂的,需要仔细思考好

C语言函数嵌套调用作业的更多相关文章

  1. C语言函数嵌套调用作业总结

    成绩管理系统作业小结 devc中出现"ID Return"问题,我帮很多同学看完后发现,大部分还是自身程序问题,如全局变量大小写错误.没有添加c文件进工程等等.所以对于" ...

  2. C语言--函数嵌套调用

    一.实验作业(6分) 本周作业要求: 选一题PTA题目介绍. 学习工程文件应用,设计实现学生成绩管理系统. 学生成绩管理系统要求 设计一个菜单驱动的学生成绩管理程序,管理n个学生m门考试科目成绩,实现 ...

  3. Swift2.0语言教程之函数嵌套调用形式

    Swift2.0语言教程之函数嵌套调用形式 Swift2.0语言函数嵌套调用形式 在Swift中,在函数中还能够调用函数,从而形成嵌套调用.嵌套调用的形式往往有两种:一种是在一个函数中调用其它函数:还 ...

  4. day11(函数参数,函数对象,打散机制,函数嵌套调用)

    一,复习 # 什么是函数:具体特定功能的代码块 - 特定功能代码块作为一个整体,并给该整体命名,就是函数 # 函数的优点: # 1.减少代码的冗余 # 2.结构清晰,可读性强 # 3.具有复用性,开发 ...

  5. C语言第十一次作业--函数嵌套调用

    一.实验作业 1.1 PTA题目:递归法对任意10个数据按降序排序 设计思路 定义整型循环变量i,最小值下标min,中间变量t 若n==1,直接返回 否则 min=10-n 最小值下标赋初值 for ...

  6. C语言第十一次博客作业---函数嵌套调用

    一.实验作业 1.1 PTA题目 题目:递归实现顺序输出整数 1. 本题PTA提交列表 2. 设计思路 printdigits函数 定义整型变量result存放结果 if n是10的倍数 result ...

  7. C语言博客作业—函数嵌套调用

    一.实验作业 1.1 PTA题目:递归法对任意10个数据按降序排序 1.1.1设计思路 void sort(int a[],int n) { 定义整型循环变量i,中间变量temp,最小值min: 令m ...

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

    一.实验作业(6分) 本周作业要求: 选一题PTA题目介绍. 学习工程文件应用,设计实现学生成绩管理系统. 学生成绩管理系统要求 设计一个菜单驱动的学生成绩管理程序,管理n个学生m门考试科目成绩,实现 ...

  9. C语言--函数嵌套

    一.实验作业 注意: 1.可以先初始化2个结构体数组数据以便测试. 2.要求用模块化方式组织程序结构,合理设计各自定义函数.同时,程序能够进行异常处理,检查用户输入数据的有效性,用户输入数据有错误,如 ...

随机推荐

  1. 获取MySql每一列的数据类型和长度默认值等信息

    如何获取MySql表中各个列的数据类型? show columns from tablename 返回结果如下: id    int(11)     NO  PRI         auto_incr ...

  2. CentOS7使用dnf安装mysql

    1.安装mysql的yum仓库 执行以下命令: yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11. ...

  3. 前端(HTML/CSS/JS)-HTML编码规范

    一.HTML编码规范 1. img标签要写alt属性 根据W3C标准,img标签要写alt属性,如果没有就写一个空的.但是一般要写一个有内容的,根据图片想要表达的意思,因为alt是在图片无法加载时显示 ...

  4. ThreadLocal原理

    ThreadLocal类可以看作是当前线程的一个局部变量,只有当前线程可以访问,因此是线程安全的. ThreadLocal内部维护了一个ThreadLocalMap类,ThreadLocalMap是一 ...

  5. 【BZOJ2875】随机数生成器(矩阵快速幂)

    [BZOJ2875]随机数生成器(矩阵快速幂) 题面 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Me ...

  6. [BZOJ4071][APIO2015]八邻旁之桥

    BZOJ(这题是BZOJ权限题,有权限号的就去看看吧) Luogu(良心洛谷) 题目描述 一条东西走向的穆西河将巴邻旁市一分为二,分割成了区域\(A\)和区域\(B\). 每一块区域沿着河岸都建了恰好 ...

  7. 3分钟anaconda安装Python框架Tensorflow,1行语句测试是否成功?

    Anaconda是一个用于科学计算的ython发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存.切换以及各种第三方包安装问 ...

  8. 【learning】多项式乘法&fft

    [吐槽] 以前一直觉得这个东西十分高端完全不会qwq 但是向lyy.yxq.yww.dtz等dalao们学习之后发现这个东西的代码实现其实极其简洁 于是趁着还没有忘记赶紧来写一篇博 (说起来这篇东西的 ...

  9. 搭建maven

    1. 下载安装包 打开网址https://maven.apache.org/download.cgi,找到下面这个文件进行下载 2. 解压安装 解压刚下载地文件到自己想要得目录下 3. 配置环境变量 ...

  10. Mybatis+Mysql插入数据库返回自增主键id值的三种方法

    一.场景: 插入数据库的值需要立即得到返回的主键id进行下一步程序操作 二.解决方法: 第一种:使用通用mapper的插入方法 Mapper.insertSelective(record): 此方法: ...