• C语言博客作业03---函数


    0.展示PTA总分

    本章学习总结

    学习内容总结

    函数包括自定义函数和库函数,函数定义的一般形式为:

    函数类型   函数名(形参)
    {
            函数实现过程
      }
    

    形参表示为:类型名 形参1,......类型名 形参n
    2.
    在一般情况下,我们都需要将函数写在结尾,开头弄个函数声明,中间调用函数
    在函数传递过程中,实参与形参需一一对应,数量应相同,顺序一致,类型尽量相同
    提示:第一行声明须有分号,定义没有
    3.
    函数可以有不返回结果的函数,定义中须加上void,可以不写return语句,由于它没有结果,所以不可能出现在表达式中,一般出现以单独的语句出现
    4.
    结构化思想的设计:
    3.1将每一个功能包装成一个函数,便于修改,完善
    3.2对变量函数命名时须知名见意
    3.3在程序中须增加必要的注释,以便增加可读性
    3.4程序中须有输入输出等友好性提示
    5.
    局部变量:一般定义在函数内部开头,只作用于函数内部,可以保证各函数的独立性
    全局变量:定义在主函数外,作用于主函数内所有位置,当某函数内的局部变量与全局变量重复时,全局变量失效,由局部变量起作用;优点是可以解决函数多返回结果的问题,也用于多函数的全局变量中,缺点:容易引起各函数相互混乱,不易控制
    静态变量:一般作用于以一个函数,调用函数时调用的是上一个结束的值;静态变量没赋初值时,系统自动赋为0,赋初值只在第一次调用时起作用;定义形式:static 类型 变量名;

    本章学习体会及代码量学习体会

    学习体会

    在本章过程中,感觉到了用函数的方便性,让每次阅读代码时都有更好的体验;更体验到了函数命名不规范的致命性,完全很难看懂;在以后的代码路中,我会多用函数去写,命名我也会查字典来命名规范,注释友好,为以后工作学习打下坚实基础

    代码累计

    本次综和作业代码量:549行

    2.综合作业:小学生口算表达式自动生成系统

    2.1本次作业函数关系图

    2.2函数功能及全局变量介绍

    2.2.1全局变量及作用

    全局变量i;
    防止在函数内多次定义i,将i的值直接传进去

    2.2.2void MenuFunction();函数

    功能:菜单函数,展示系统界面

    2.2.3int TowMenuFunction(int x);函数

    功能:二级菜单,让用户输入选择

    2.2.4void OneDigitFunction();函数

    功能:一或两位数加减函数;思路:根据输入 i 的值来判断是一位还是两位加减法,从而实现年级的不同难度

    2.2.5void EncourageFunction();函数

    功能:通过随机产生不同的数,输出不同的鼓励语句

    2.2.6void EvenAddTheReduction();函数

    功能:生成随机数的百以内的连加连减;思路:随机生成加号或减号,再随机生成三个数,输出答案;

    2.2.7void MethodResidual();函数

    功能:一位数的乘除法;思路:随机生成0或1来决定是乘法还是除法,进而来随机生成数进行运算,除法多加了余数上去,使运算更加完善;

    2.2.8void MoreHundred();函数

    功能:三位数的加减法(包括整百的加减法);思路:根据每次随机的数来决定是哪种加减法,进而随机数进行运算

    2.2.9void NumberMultiplication();函数

    功能:一位乘多位的函数(顶多只能乘到3位);思路:随机生成一位数和一个两位数,进行乘法运算;

    2.2.10void HybridOperation()函数

    功能:十以内的三则加减乘除混合运算;思路:随机产生三位数,在随机产生两个运算符号,输入答案,进入另一个函数判断答案是否正确

    2.2.11int Sumumber(int a, char op1, int b, char op2, int c)函数

    功能:计算上一个函数随机产生的数的结果;思路:一层一层判断符号,然后得出结果

    运行结果截图,测试用例

    两位数减整十数

    整十数减整十数

    100以内三个数连加连减混合运算

    1-9乘除法

    有余数的除法

    整百数加减法(和超过一千的,退位的)

    三位数加法

    一位乘多位

    三个数混合运算

    调试遇到的问题及解决办法

    1.当我想要用数组去运算三个数的混合运算时,我用j=rand();b=a[j];时,结果显示运行不了
    解决:数组没办法我就只能一个一个分支的判断了;
    2.如果输入非法数据时,结果就会跳到其他地方
    解决:我想了想,如果给每个地方都加上非法的判断的话,代码量增加了很多,所以我就偷了偷懒,只给它一个不能非法输入的提示
    3.还有一个困难就是三个数的混合运算时,如何得出正确的结果让我头疼了一下
    解决:本来想用以前课堂派上的那个四则运算,发现不适用,就用分支判断符号来计算

    大作业总结

    这个过程我觉得是要光头的,过程中总是翻来覆去的想如何将功能尽量写进函数里去,绞尽脑汁,最后终于完成了一份不太完美的作业,还是比较高兴的,终于写完了一整个程序。最后我觉得写程序时还是要打打草稿,想想思路,不然太容易乱套了

  • 相关阅读:
    Spring Boot 启动加载数据 CommandLineRunner(一般用于项目启动时,用户信息的缓存)
    缓存穿透、缓存并发、缓存失效之思路变迁
    知识点的梳理
    windows下查找java应用占用CPU过高问题
    Java开发中的Memcache原理及实现
    malloc函数详解 C语言逻辑运算符
    PCH 警告:标头停止点不能位于宏或#if块中
    绪论-第一章-《数据结构题集》
    线性表的顺序存储结构--用数组实现
    第二章 《C++ Primer Plus》
  • 原文地址:https://www.cnblogs.com/200157zy/p/11785344.html
Copyright © 2020-2023  润新知