zoukankan      html  css  js  c++  java
  • 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最后得到结果。以后要是有大作业我会严格按照这样来写,不然可能会像本次一样,缺什么补什么,搞得思路很乱,所以代码打了很久。
  • 相关阅读:
    Binary Search Tree Iterator 解答
    Invert Binary Tree 解答
    Min Stack 解答
    Trapping Raining Water 解答
    Candy 解答
    Jump Game II 解答
    Implement Hash Map Using Primitive Types
    Gas Station 解答
    Bucket Sort
    HashMap 专题
  • 原文地址:https://www.cnblogs.com/wcrbailun/p/9929210.html
Copyright © 2011-2022 走看看