C博客第03次作业---函数

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 n1或n2 返回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最后得到结果。以后要是有大作业我会严格按照这样来写,不然可能会像本次一样,缺什么补什么,搞得思路很乱,所以代码打了很久。

posted on 2018-11-13 12:33  拜伦。  阅读(290)  评论(0编辑  收藏  举报

导航