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. MVC仓储类Repository

    接口: using Common; using System; using System.Collections; using System.Collections.Generic; using Sy ...

  2. apache日志里出现GET http://wujieliulan.com/mnews.htmHTTP/1.1解决方法

    笔者最近搭建了服务器,Ubuntu 16.04.3 LTS,apache日志里老是出现一些莫名其妙的日志. 好像谁用了我的服务器做代理,日志如下 凭借着小学文化 :) 勉强读懂了汉语拼音wujieli ...

  3. Debian 利用 iso 镜像完全离线更新 apt-cdrom

    1 目的 在日常的 linux 服务器管理中,出于某些考虑,服务器要求与 Internet 完全隔离. 这使得我们对系统的更新和软件包的升级感到无比头疼. 下面介绍的这种方法,采用 ISO 文件,进行 ...

  4. Eloquent Observer 的小坑

    前言 最近开发新的项目不是基于完整的 laravel 框架,框架是基于 laravel ORM 的简单MVC模式.随着项目的成熟和业务需求,需要引入事件机制.简单地浏览了一下 symfony.lara ...

  5. hdu-1060(数学问题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1061 思路:结论:a=10^(N*lg(N) - [lg(N^N)]); 证明:如果一直a是结果,则a ...

  6. Linux IPC 之信号量

    信号量(也叫信号灯)是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语. 信号量是进程/线程同步的一种方式,有时候我们需要保护一段代码,使它每次只能被一个执行进程/线程运行,这种工作就需 ...

  7. ssh到远程执行命令并返回

    假设有三台机器 host1,host2,host3,host1能免密登录其他两台.要在第一台的机器里面写一个脚本分别删除每台机器的/root/test.txt rm -rf /root/test.tx ...

  8. Yarn application has already exited with state FINISHED

    如果在运行spark-sql时遇到如下这样的错误,可能是因为yarn-site.xml中的配置项yarn.nodemanager.vmem-pmem-ratio值偏小,它的默认值为2.1,可以尝试改大 ...

  9. log4j日志文件路径设置

    假设有如下标准化的目录结构: $HOME |-- log |-- conf |-- bin |-- lib |-- data jar包放在lib目录,启动脚本放在bin目录,日志文件放在log目录,配 ...

  10. LINUX中关于SIGNAL的定义

    /* Signals. */ #define SIGHUP 1 /* Hangup (POSIX). */ #define SIGINT 2 /* Interrupt (ANSI). */ #defi ...