1.本章学习总结

1.1 思维导图

1.2 本章学习体会及代码量学习体会

1.2.1 学习体会

  • 首先,对于学习了函数的我来说是很开心的,因为学了函数之后可以解决很多以前不懂的问题,可以说函数是C语言中不可缺少的一部分。
  • 其次,函数对于之前的循环,嵌套之类的C语法来得更深层次,要掌握需要对C语言了解得深一点,也就是说我已经不再是新手了,已经要向着更深层次的关于C的知识前进了。
  • 再来,函数的使用需要对语法了解明白,比如说什么时候调用函数,如何对函数进行声明,如何准确使用实参与形参,这些都需要认真且仔细,一旦有哪里出错就会影响到整个函数。
  • 最后,自从学习函数之后明显觉得难度比以前大,题目比之前难,对于今后更加难的学习,我已经做好准备了。

    1.2.2 代码累计

2.PTA总分

2.1截图PTA中函数题目集的排名得分

2.2 我的总分

  • 145分

3.PTA实验作业

3.1 PTA题目1

  • 本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[m, n]内的所有Fibonacci数,相邻数字间有一个空格,行末不得有多余空格。如果给定区间内没有Fibonacci数,则输出一行“No Fibonacci number”。

3.1.1 算法分析

  • int fib( int n )来求第n项Fibonacci数
  • if n==1或n==2 返回1
  • 否则 for i=3;i<=n;i++
  • sum=A+B;A=B;B=sum;
  • end for 开始循环直到得到第n项的Fibonacci数 返回sum
  • void PrintFN( int m, int n )来求m到n之间的Fibonacci数
  • while(fib(i)<=10000)调用上面的函数来求Fibonacci数
  • if(fib(i)>=m&&fib(i)<=n)在所输入的区间时
  • flag=1控制输出结果 y++ 如果y=1则输出fib(i)否则输出空格加fib(i)
  • end while
  • 如果flag==0,输出No Fibonacci number。

3.1.2 代码截图

3.1.3 测试数据

3.1.4 PTA提交列表及说明

Q1;一开始没有运用flag来控制输出结果,所以老是格式出错。
A1;后面御用flag来控制输出,格式正确。
Q2;刚开始时第一个函数写得很复杂,没有真正明白Fibonacci数的规律,所以多次出错。
A2;在搞清楚规律后,用三条语句就写出了循环体,也就正确了。

4.大作业

4.1.函数关系图

4.2.函数功能介绍

1.函数1:void degreeOne()

  • 功能介绍:该函数主要控制1位数的一步加减乘除计算。

  • 思路:输入需要训练的题目数量,用i来控制循环。再得出一位的随机数,再随机得出加减乘除中的一个符号,进行计算,结果正确则给句肯定的语句,出错了输出正确答案,并给一句鼓励的话。答题结束时给出一个选择给用户选择继续答题或者退出。退出循环时计算正确率。


2.函数2:void degreeTow()

  • 功能介绍:该函数主要控制2位数的两步加减计算。

  • 思路:输入需要训练的题目数量,用i来控制循环。再得出三个两位的随机数,再随机得出++或者+-或者-+或者--中的任意一个情况,进行计算,结果正确则给句肯定的语句,出错了输出正确答案,并给一句鼓励的话。答题结束时给出一个选择给用户选择继续答题或者退出。退出循环时计算正确率。


3.函数3:void degreeThree()

  • 功能介绍:该函数主要控制3位数的两步加减计算。

  • 思路:输入需要训练的题目数量,用i来控制循环。再得出三个三位的随机数,再随机得出++或者+-或者-+或者--中的任意一个请况,进行计算,结果正确则给句肯定的语句,出错了输出正确答案,并给一句鼓励的话。答题结束时给出一个选择给用户选择继续答题或者退出。退出循环时计算正确率。


4.函数4:void tital()

  • 功能介绍:该函数主要控制开头界面。

4.3 运行结果截图

  • 选择第一个级别,选择难度时输入不合法数据

  • 选择第二个级别,并在选择题目数量时输入非法字符

  • 选择第三个级别,并在选择是否继续时输入非法字符

4.4 调试碰到问题及解决办法

  • 问题:
  • 1.一开始对于随机数以及时间函数并不是很了解也不懂得使用。
  • 2.对于输入时输入非法字符这个想了很久,代码中有多次输入数字的地方,只要是输入字符都会导致代码混乱。
  • 3.对于第一个函数的除法运算问题也纠结了很久。
  • 4.其他都是一些比较小的问题。
  • 解决方法:
  • 1.随机数与时间函数去百度了一下,并模仿了百度上的代码,但是也掌握的随机数与时间代码的用法。
  • 2.在选择难度时输入非法字符,我采用了goto语句,输入非法字符时从新输入。在输入题目数量时输入非法字符,最后没办法只能使输入非法字符退出训练。在输入是否继续答题时输入非法字符,想了很久也不能使它从新选择是否退出,只能使输入非法字符退出训练。
  • 3.想了很久最后采用double来定义result,并在result前成一个1.0引出后面的结果,最后用%.2f取小数点后两位。

4.5 大作业总结

  • 通过了本次的大作业,学到了不少的新知识,比如随机数的应用以及时间函数的应用,还有goto语句的使用方法。
  • 但同时也暴露出了不少的问题,就是函数还不能很好的使用,以后要加强对函数的使用的方法。
  • 总结写大作业的顺序,我认为写大作业应该要列思路,将函数调用好,然后再使界面友好,再打出思路中的代码有一个整体的框架,最后进行调试,也就是寻找bug,然后通过改正bug最后得到结果。以后要是有大作业我会严格按照这样来写,不然可能会像本次一样,缺什么补什么,搞得思路很乱,所以代码打了很久。

C博客第03次作业---函数的更多相关文章

  1. 博客C语言I作业11

    一.本周教学内容&目标 第5章 函数 要求学生掌握各种类型函数的定义.调用和申明,熟悉变量的作用域.生存周期和存储类型. 二.本周作业头 这个作业属于哪个课程 c语言程序设计II 这个作业要求 ...

  2. C博客第01次作业---顺序,分支结构

    1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 经过了这一周的学习,从一开始对C语言一无所知,到现在能够写出基本的代码,感到非常开心. 学习C语言也并非想象 ...

  3. 软件工程1916|W(福州大学)_助教博客】个人总结作业(第12次)成绩公示

    1.作业链接 个人作业--软件工程实践总结作业 https://edu.cnblogs.com/campus/fzu/SoftwareEngineering1916W/homework/3316 2. ...

  4. C博客第02次作业---循环结构

    1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量 1.2 本章学习体会及代码量 1.2.1 学习体会 1.这两周的学习懂得了循环结构的使用方法,懂得了在什么时候应该使用循环结构来处理问 ...

  5. 【软件工程1916|W(福州大学)_助教博客】团队第一次作业成绩公示

    题目 第一次作业 评分准则: 队名(最好能够体现项目内容,要求有亮点与个性):(1分) 拟作的团队项目描述:一句话(中英文不限):(1分) 队员风采:介绍每一名队员,包括成员性格.擅长的技术.编程的兴 ...

  6. JavaScript学习系列博客_18_JavaScript中的匿名函数

    匿名函数 - 用函数声明的方式创建一个函数时,不加函数名称. function sum(){ console.log("我是函数sum")} - 不加名称,这样写浏览器是会报错的. ...

  7. python中multiprocessing.pool函数介绍_正在拉磨_新浪博客

    python中multiprocessing.pool函数介绍_正在拉磨_新浪博客     python中multiprocessing.pool函数介绍    (2010-06-10 03:46:5 ...

  8. DS博客作业01--日期抽象数据类型设计与实现

    1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2 学习体会 这次博客园和大作业是我在编程学习中的有意义的进步,第一次尝试使用vs,并且通过同学的一些网站的推荐,和热心同学的帮忙,简单学会 ...

  9. C语言I博客作业12

    一.我学到的内容 二.我的收获 作业链接 收获 博客第一次作业:https://www.cnblogs.com/gm12/p/11584148.html 第一次作业收获:第一次作业是我初步接触C语言的 ...

随机推荐

  1. [leetcode]295. Find Median from Data Stream数据流的中位数

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  2. linux引导系统

    一.linux引导系统 1.选择操作系统 /etc/grub.conf 设置grub引导装载程序口令,使用单用户模式时必须输入此密码 password --md5 md5后的密码字符串(可以通过gru ...

  3. .NET发送请求(get/post/http/https),携带json数据,接收json数据

    C#发送https请求有一点要注意: ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateVa ...

  4. vmware fusion 10序列号

    vmware fusion pro  10序列号   亲测可用激活 FG3TU-DDX1M-084CY-MFYQX-QC0RD

  5. 使用phpExcel导出excel文件

    function export($log_list_export) { require "../include/phpexcel/PHPExcel.php"; require &q ...

  6. Vue.js (Frontend & Backend)尝试前后端分离

    前言 前端用什么框架都可以,这里选择小巧的vuejs. 要实现的功能很简单:1.登录功能,成功将服务器返回的token存在本地2.使用带token的header访问服务器的一个资源 本次实验环境: & ...

  7. DB2 字符串的字段转为整形时的问题

    正确语句: select int(cast(substr(dpt_leader_ids,4,posstr(dpt_leader_ids,',0)')-4) as varchar(8))), d.* f ...

  8. RNA分析要点

    1. 有参与无参转录组分析 2. lncRNA分析 以RNA-Seq测序技术为基础的转录组测序作为高通量测序时代核心技术之一,已在生物科学及医学领域前沿研究中获得广泛应用.RNA-Seq可进行全基因组 ...

  9. Notepad++ 中如何将代码格式化

    Notepad++ 中如何将代码格式化   在阅读别人的代码时偶尔会遇到格式很乱,阅读起来很费劲的情况,若手动改,很容易出错且很费时间,这时可以借助一些专业的编辑器来格式化代码,NotePad++是一 ...

  10. ST3 插件和技巧

    Emmet插件: 快速生成HTML文档结构, 快速编写跨浏览器的CSS并自动帮助你同时编辑, 强大! 语法技巧 简单实用, 值得掌握! SideBar Enhancements插件:  改进了侧边栏, ...