zoukankan      html  css  js  c++  java
  • C语言作业03函数

    1.本章学习总结

    1.1 思维导图

    1.2本章学习体会,代码量学习体会

    1.2.1学习体会

    通过这几周的函数学习,让我明白了函数的重要性,在很多时候运用函数,会使得代码分工明确,逻辑严密,不繁琐。函数的使用有很多的细节,比如变量的定义,当变量的使用范围局限函数内部时,或者形参的改变不能够影响实参时,用局部变量。当这个变量考虑到不同函数之间的交流时,或者多个函数共同使用一个变量,就必须使用全局变量。需要函数在使用后依旧保持原来的值,使用静态局部变量。还明白了void无返回值的函数的使用。以及多个定义函数,且函数之间有联系的代码是如何联系的。总之,函数的世界多彩多样,只有一步一步去思考,认真的写好题目,才有可能琢磨的透函数。在接下来的学习中,要保持住代码量,再写函数的题目的时候,要特别注意参数之间的关系,否则会一头雾水。写代码的时候要从主函数入手,而不是定义函数入手。我觉得这段时间自己比较好的地方是,完成pta的速度有提高,很多题目难度虽然不大,但是细节很多,我能灵活发现几处错误。希望自己在接下来的学习中,保持住这种细心的态度!

    1.2.2代码累计

    2.PTA总分

    2.1

    2.2我的总分:

    总分 :145

    3.PTA实验作业

    3.1题目介绍

    3.1.1算法分析

    Fib (int n) 函数:
    定义:开头2项x=1,y=1;循环值I;和返回值t;

    • for i=1 to n
      • if I<=2 then t=1//开头2项都为1
      • else t=x+y x=y y=t//从第3项开始后一项等于前2项和
    • end for
    • return t//返回t值

    PrintFN (int m, int n)函数:
    定义循环值i;第一项x=1,第二项y=1;返回值t;count统计个数以及辅助输出

    • for i=1 to
    • if I<=2 then t=1//开头2项都为1
      • else t=x+y x=y y=t//从第3项开始后一项等于前2项和
    • if t>n then break //如果某项的值大于了最大界,跳出循环
    • if t>=m then count++//某项在规定的范围内,计数统计个数
      • if count==1 then printf("%d")//当输出第一个数的时候
        -else printf(" %d")//
    • end for
      -if count==0 then printf("No Fibonacci number")

    3.1.2代码截图

    3.1.3测试数据

    3.1.4PTA提交列表和说明

    Q1:没有注意第一第二项的输出情况。
    A1:加入if判断,如果i为1,2:返回的t值为1. i>大于2的情况下才进行前2项累加。

    4.大作业

    题目:实现小学四则运算

    4.1函数关系图

    4.2函数功能介绍

    1.函数1


    功能:输出简单算术器的大标题。看上去更美观!

    2.函数2

    功能:第一级是1位数的一步加减乘除计算
    思路:1.输入题目数量。用for循环执行题目量,
    2.然后产生2个一位数的随机数,用rand()%9+1的方法避免了0.
    并且用rand()%4+1的方法产生随机运算符号。
    3.用switch语句随机运算
    4.if语句判断答案是否正确
    5.提问是否退出(用户输入)
    6.当循环结束,计算正确率。

    2.函数3


    功能:第二级是2位数的2步加减计算
    思路:1.输入题目数量。用for循环执行题目量,
    2.用rand()然后产生3个2位数的随机数,
    并且判断输出的随机数是否为一位,如果是一位数,加上10,转化为2位。
    并且用rand()%4+1的方法产生随机4种情况:
    ++ /+- /-+ /--
    3.用switch语句随机运算
    4.if语句判断答案是否正确
    5.提问是否退出(用户输入)
    6.当循环结束,计算正确率。

    2.函数4


    功能:第三级是3位数的2步加减计算
    思路:1.输入题目数量。用for循环执行题目量,
    2.用rand()然后产生3个3位数的随机数,
    并且判断输出的随机数是否为100以下,如果是小于100的数字,加上100,转化为3位。
    并且用rand()%4+1的方法产生随机4种情况
    ++ /+- /-+ /--

    3.用switch语句随机运算4种情况
    4.if语句判断答案是否正确
    5.提问是否退出(用户输入)
    6.当循环结束,计算正确率。

    4.3运行结果截图

    一级:

    二级:

    三级:

    4.4调试碰见的问题解决办法

    Q1:当用户输入不合法数据,系统无法运行
    A1:用if语句判断,如果输入不属于合法的数据,提醒重新输入。重新读入一个相同变量的数据。

    Q2:输出2位数,3位数,会随机产生一位数。
    A2:用if判断,如果产生的随机数为一位数,就自动加10和100,转化为2位数,和3位数的随机数。

    Q3:除法中产生分母为0的数
    A3:用rand()%9+1的方法直接把随机0去除,这样所有数据不产生0.

    4.5大作业总结

    这次的大作业,是学习c语言以来编写代码最大的一次程序,让我感受到了c语言的强大,自己动手设计的一个简单软件。这次大作业,让我感受到了编写程序的流程,应该要有框架,首先把一个程序分为很多个部分,比如我的代码有4个大部分,每一个部分的功能不一样,然后在分功能的去逐一编写代码。一个一个函数,一个一个部分完成了在接下来下一部分,只有这样才能保证效率,完成所有的部分后,在合起来拼成一个大程序,去完善其中的漏洞,不如输入不符合要求的数字,以及除法为0的情况,还有产生的随机数不满足位数等等。在这些小漏洞完成后,可以适当扩展,比如时间函数等。总之,编写软件需要耐心,而且需要是不是的检测,完善自己的代码。这次的大作业,让我明白了一个软件的实行的最基本流程,希望在下次的作业中能够更熟悉的运用。

  • 相关阅读:
    37. Sudoku Solver(js)
    36. Valid Sudoku(js)
    35. Search Insert Position(js)
    34. Find First and Last Position of Element in Sorted Array(js)
    33. Search in Rotated Sorted Array(js)
    32. Longest Valid Parentheses(js)
    函数的柯里化
    俞敏洪:我和马云就差了8个字
    vue路由传值params和query的区别
    简述vuex的数据传递流程
  • 原文地址:https://www.cnblogs.com/zhouqb/p/9941213.html
Copyright © 2011-2022 走看看