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. 利用redis完成自动补全搜索功能(三)

    前面已经完成了分词和自动提示功能,最后把搜索结合在一起,来个完成的案例.当然最好还是用搜索分词解决,这个只是一个临时解决方案. 其实加上搜索很简单,要做的就是3件事 1. 分词的时候,把有用词的id存 ...

  2. Pycharm及python安装详细教程

    首先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载. 2. ...

  3. IE8不支持数组的indexOf方法 如何解决

    转自:http://www.jbxue.com/article/8367.html 原因分析: 这是一个js bug, 在IE8下,js数组没有indexOf方法,会报错:而在其它浏览器下(Firef ...

  4. java文件读写操作指定编码格式

    读文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够大了. 通常,R ...

  5. dir/

    dos窗口输入dir命令是显示磁盘目录命令: addslashes()使用反斜线转义字符串: exec($command,$output,$return)执行一个外部程序 $command:要执行的命 ...

  6. 设计资源:三个精美APP原型例子下载

    原型设计是整个产品生产过程中不可或缺的一环,无论你是移动端UI设计师或是网页设计师,原型设计都会让整个设计过程更加轻松.原型是产品概念的具象化,它让每个项目参与者都能查看并提出意见以便在产品发布前日臻 ...

  7. Microsoft DirectX SDK 2010 版本下载

    Microsoft DirectX SDK 2010 版本下载 Version:Date Published:9.29.19626/7/2010File name:File size:DXSDK_Ju ...

  8. 20155232 2016-2017-3 《Java程序设计》第9周学习总结

    20155232 2016-2017-3 <Java程序设计>第9周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...

  9. 2018.08.22 NOIP模拟 string(模拟)

    string [描述] 给定两个字符串 s,t,其中 s 只包含小写字母以及*,t 只包含小写字母. 你可以进行任意多次操作,每次选择 s 中的一个*,将它修改为任意多个(可以是 0 个)它的前一个字 ...

  10. 如何在Linux中统计一个进程的线程数(转)

    方法一: /proc proc 伪文件系统,它驻留在 /proc 目录,这是最简单的方法来查看任何活动进程的线程数. /proc 目录以可读文本文件形式输出,提供现有进程和系统硬件相关的信息如 CPU ...