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最后得到结果。以后要是有大作业我会严格按照这样来写,不然可能会像本次一样,缺什么补什么,搞得思路很乱,所以代码打了很久。
  • 相关阅读:
    用户登录设计 单点登录 记住密码等
    相同类名称但不同包启动报错
    IDEA项目搭建十一——添加拦截器、忽略URL大小写、启动事件
    IDEA项目搭建七——使用Feign简化消费者端操作
    java enum使用方法
    IDEA项目搭建十——使用slf4j和logback进行日志记录
    IDEA项目搭建九——MybatisPlus多数据库实现
    IDEA项目搭建八——使用MybatisPlus简化数据库交互
    IDEA项目搭建六——使用Eureka和Ribbon进行项目服务化
    新建Git仓库并关联远程Gitlab
  • 原文地址:https://www.cnblogs.com/wcrbailun/p/9929210.html
Copyright © 2011-2022 走看看