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

0.展示PTA总分


1.本章学习总结


1.1 学习内容总结

1.1.1 函数组成

  • 函数声明:函数声明指函数原型声明,只有函数名,函数类型,参数个数和类型,无函数体。一般放在主函数前,以分号结尾
    void hollowPyramid(int n);
  • 函数定义:除上述外,去掉结尾分号,加函数体
    void hollowPyramid(int n)
  • 形参:必须是变量,用于接收实参传递过来的值
  • 实参:可以是常量,变量或表达式

1.1.2 变量

  • 局部变量:作用效果只局限于所在函数内
  • 全局变量:作用范围为全部函数,与局部函数同时出现时局部函数优先
  • 静态局部变量:上次函数调用后的值仍然保存
    static 类型名 变量表

1.1.3 函数种类

  • 无返回值:void型
  • 有返回值:int型、double型

1.1.4 return作用

  • 结束函数的运行
  • 带着运算结果返回主函数
  • return语句只能返回一个值

1.1.5 易错点

  • 定义的函数类型一定要与函数返回值是一个类型
  • 形参和实参是一一对应的
  • 在不返回结果的函数定义中,void不能省略;否则,函数类型被默认定义为int
  • 静态局部变量赋初值只在函数第一次调用时起作用,若没有 赋初值,系统将自动赋0

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

1.2.1 学习体会

这两周接触了函数,了解到相同功能的代码可以放在同一个函数中,供其他函数调用,还可以解决代码的重复问题,使得代码量大的变得更加简洁。一开始虽然明白形参和实参的理论概念,但是课堂互动时还是搞不清哪个空该填形参哪个空该填实参,懵懵的。后来PTA上做了题练练手才逐渐了解了函数的相关操作,不过有时候还是会想不清楚要return什么值回主函数,对于函数的使用还是不太上手吧,在以后的作业中希望自己能够多使用函数解题。

1.2.2 代码累计

PTA函数题集 综合作业 总计
270 496 766

2.综合作业——小学生口算系统


2.1 本次作业的函数关系图

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

2.2.1 全局变量

2.2.2 函数功能介绍

  • void listMenu();//初始界面菜单

  • void level();//一二三年级选择菜单

  • void getScore(int n);//得出分数

  • void rightMessage();//正确信息输出

  • void wrongMessage();//错误信息输出

  • int calculate(int n);//计算

  • int calculate1(int x, int y, int z);//一年级

  • int calculate2(int x, int y, int z);//二年级

  • int calculate3(int x, int y);//三年级

  • double correctRate(double rate);//计算正确率

  • main函数

2.3 运行结果截图,测试用例

  • 一年级

  • 两位数减整十数

  • 整十数减整十数

  • 100以内连加连减混合运算

  • 二年级

  • 1-9以内的表内乘除法

  • 整十加整十(进位)

  • 三年级

  • 三位数加三位数的加法(含连续进位的)

2.4 调试碰到问题及解决办法

1.一开始发现程序不能读入用户所输入的值,即程序里面的youranswer,纠结了很久不知道是为什么,~~后来发现是我傻逼~~后来突然意识到我在scanf里面写了提示语所以不能读入,将文字删除之后就可以正常读入答案了

2.发现一样的题目会输出两遍,用逐语句调试发现是我在判断是否为1的那一段输入了两遍函数,导致函数会运行两次,删除一次之后就完事了~

3.发现第一题输入正确答案后并被判为正确后,继续第二题输入的也是正确答案,但是程序读入的youranswer是上一题的答案,纳闷了很久,我后来是把printf题目后面的
以及scanf后面的
删去,再加一个getchar()吸收字符

2.5 大作业总结

编写过程注意事项:

  • 首先在代码复杂的情况下创建一个清晰的思维导图还是很有效果的!!
  • 然后是要保持界面的友好
  • 要确定函数的先后顺序以及在程序中的位置

碰到的问题:

  • 对于函数的嵌套顺序思考了很久,不熟练
  • 一些不合法的算式比如分母为0、减法不能出现负数的情况需要考虑到,但是我只能控制两位数的减法结果大于0,混合运算会再继续改进的
  • 对于很多要求不能够做到很精确,年级越高题目的要求也越多,由于是随机数,总是不能够调试出合适的数据
  • 一些细微的错误总要通过调试去发现,读代码的能力还有待提高
原文地址:https://www.cnblogs.com/hekikimi/p/11779122.html