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的情况,还有产生的随机数不满足位数等等。在这些小漏洞完成后,可以适当扩展,比如时间函数等。总之,编写软件需要耐心,而且需要是不是的检测,完善自己的代码。这次的大作业,让我明白了一个软件的实行的最基本流程,希望在下次的作业中能够更熟悉的运用。

C语言作业03-函数的更多相关文章

  1. C博客作业03——函数

    0.展示PTA总分 截图展示: 1.本章学习总结 1.1学习内容总结 (a)函数的定义 1)函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数两种,scanf(),printf()等为库函数 ...

  2. C博客作业03—函数

    1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1 学习体会 知道了程序的模块化设计可使程序结构清晰,简化复杂问题,解决代码重复问题 学会使用自定义函数简化主函数,使代码 ...

  3. C语言I—2019秋作业03

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 C语言I-2019秋作业03 我在这个课程的目标是 掌握if-else语句,运算关系 这个作业在那个具体方面帮助我实现目标 row 2 c ...

  4. | C语言I作业03

    | C语言I作业03 标签: 18软件 李煦亮 问题 答案 这个作业属于那个课程 C语言程序设计I 这个作业要求在哪里 https://edu.cnblogs.com 我在这个课程的目标是 学会和掌握 ...

  5. C语言|作业12—学期总结

    一. 我学到的内容 二. 我的收获 作业链接 收获 C语言l博客作业01 对这个专业.学科以及markdown语法有了初步了解,打印出了"Hello world!" C语言l博客作 ...

  6. C语言Ⅰ作业12—学期总结

    一.我学到的内容 二.我的收获 作业链接 收获 C语言Ⅰ博客作业01 认识了PTA编程,博客园,Markdown基本语法1,Markdown基本语法2 C语言Ⅰ博客作业02 PTA系统常见问题解答 C ...

  7. C语言作业总结

    .## 一.我学到的内容 二.我的收获 作业 学到的知识点简介 C语言I博客作业01 学习了markdown语法. C语言I博客作业02 学习了<提问的智慧>. C语言I博客作业03 了解 ...

  8. C语言Ⅰ作业-05

    这个作业属于哪个课程 C语言程序设计Ⅰ 这个作业要求在哪里 https://www.cnblogs.com/tongyingjun/p/11722665.html 我在这个课程的目标是 熟练掌握如何用 ...

  9. 我的第三次C语言作业

    我的第三次C语言作业 这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2 这个作业要求在哪里 https://edu.cnblogs.co ...

  10. Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针

    Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针   1.1. java方法引用(Method References) 与c#委托与脚本语言js ...

随机推荐

  1. 转载博客:rabbitmq

    原文出处:http://www.cnblogs.com/sam-uncle/p/9202933.html 假设有这一些比较耗时的任务,按照上一次的那种方式,我们要一直等前面的耗时任务完成了之后才能接着 ...

  2. Ubuntu12.04下搭建Java环境

    1.认识需要配置的环境变量 1). PATH: 作用是指定命令搜索路径,打开/etc/environment可以看到PATH变量的值,该变量包含了一系列的路径.那些路径都是一些经常使用的系统命令的目录 ...

  3. 2018.09.08 bzoj4518: [Sdoi2016]征途(斜率优化dp)

    传送门 把式子展开后发现就是要求: m∗(∑i=1msum′[i])−sum[n]2" role="presentation" style="position: ...

  4. 2018.09.07 Amount of degrees(数位dp)

    描述 求给定区间[X,Y]中满足下列条件的整数个数:这个数恰好等于K个互不相等的B的整数次幂之和. 例如,设X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意: 17 = 24+20, ...

  5. 2018.08.22 NOIP模拟 shop(lower_bound+前缀和预处理)

    Shop 有 n 种物品,第 i 种物品的价格为 vi,每天最多购买 xi 个. 有 m 天,第 i 天你有 wi 的钱,你会不停购买能买得起的最贵的物品.你需要求出你每天会购买多少个物品. [输入格 ...

  6. 马婕 2014年MBA,mpacc备考 报刊宣读2 美国对互联网的控制威胁着网络自由(转)

    http://blog.sina.com.cn/s/blog_3e66af4601015qmk.html US controls threaten Internet freedom 美国对互联网的控制 ...

  7. jsp调用java servlet

    1.依赖jar servlet-api.jar 2.工程结构 3.java servlet实现类 package testServlet; import java.io.IOException; im ...

  8. DataGrid组件

    <?xml version="1.0" encoding="utf-8"?><s:WindowedApplication xmlns:fx=& ...

  9. python小练习--属性

    箭头这个作业: class Box:#定义一个类名为Box,类名后不必有括号,类包含类属性和类方法,这个类没有定义类属性 '''这是一个计算体积的类'''#这是这个类的__doc__属性,执行类后就可 ...

  10. 电信网上营业厅-客户充值缴费时间段数据挖掘--spss

    最近研究分析了“云南电信网上营业厅”e9宽带续约缴费的数据,目前宽带续约量为171人,今天需要谈论的是:如何利用SPSS挖掘出“客户充值缴费的时间段”客户喜欢在哪个时间段来网厅进行充值缴费 云南电信网 ...