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

1.本章学习总结

1.1 思维导图

C语言博客作业03--函数_第1张图片

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

1.2.1 学习体会

1.在本周的学习中,我学会了如何去声明及定义一个函数,以前我总是不理解为什么函数要在前声明在后定义,经过本周的学习我终于知道这是为了便于阅读。
2.通过自学,还学会了全局变量和宏定义,这样不需要用到指针就可以在函数里直接修改变量的值,但是在我的印象中,这种全局变量似乎有不足之处,他不利于设计及理解。
3.学习了递归函数的用法,简易做到逆序输出,以及dfs算法。

1.2.2 代码累计

1474626-20181028002250983-2110382296.png

2.PTA总分

2.1截图 PTA中的排名得分

1474626-20181027215344471-1138223070.png

2.2 我的总分

PTA总分:145分

3.PTA实验作业

3.1 PTA题目1

本题要求实现一个计算两个数的最大公约数的简单函数。

3.1.1算法分析

这代题目本身并不难,但由于我用到了函数的递归,简化了过程,所以想拿出来和同学们分享一下

int gcd(int x, int y)
{
    int r;
    r = x % y;
    if (x和r的余数为零) 返回 y的值;
    else 继续使用gcd函数对y和r判断;
}

3.1.2 代码截图

C语言博客作业03--函数_第2张图片

3.1.3 测试数据

1474626-20181110133155034-1032580539.png

3.1.4 PTA提交列表及说明

1474626-20181110132254808-607328298.png

Q:不需要判断两个数的大小吗?

A:在取余的过程中,如果第一个数比第二个小,那么两个数的位置在进入下一个gcd时就会调换位置,所以不用判断。

4.大作业

4.1.函数关系图

C语言博客作业03--函数_第3张图片

4.2.函数功能介绍

因为我的函数里还有一些是用来输出提示优化用户体验,所以下面将主要列举一些功能性函数

1.读数函数

此函数共有三个功能,一是在每轮计算结束后暂停进程等待用户输入,以便于用户观察上一题的结果,二是给予用户重新选择难度级别的机会,三则是退出函数

C语言博客作业03--函数_第4张图片

2.随机数的抓取

此函数主要用于依据用户所选择的难度级别给number1至number3赋予不同的数值

C语言博客作业03--函数_第5张图片

3.随机运算符的抓取

此函数与一函数类似,都是利用time.h函数库和rand函数来获得随机的目标

C语言博客作业03--函数_第6张图片
4.级别的选择

因为为了做到让用户能在中途切换游戏级别,因此定义了该函数用于重复调用

C语言博客作业03--函数_第7张图片

5.计时函数

这两个函数将在题目输出后立即记录开始时间,并在用户输入结果后记录结束时间

C语言博客作业03--函数_第8张图片

6.结果计算

由于结果运算同级运算较为简单,这里主要讲解如何解决不同级运算符,由于给定的符号较少,这里不需要用到数组,且组合较为简单,所以一一列举出来即可

C语言博客作业03--函数_第9张图片

7.主干函数

这里的主干函数用于调用各种函数,完成一轮的出题与计算

C语言博客作业03--函数_第10张图片

4.3 运行结果截图

C语言博客作业03--函数_第11张图片

C语言博客作业03--函数_第12张图片

C语言博客作业03--函数_第13张图片

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

Q1:当用户很皮,不老实输出合法数据怎么办?

A1:设置一个这星期学到的while重复输入法,不正确输入则不断让用户继续输入,起初我是使用整型存储级别等数据,后来发现输入字符就会崩坏,因此改用字符型,再也不怕熊孩子

Q2:仅仅使用time获得的数字取余当作随机数字?

A2:后来发现计算机的运行速度太快了,直接获得两个一样的数,后来百度发现,应该配合rand函数一起使用,效果拔群

Q3:随机字符怎么办?

A3:一开始是想着加减乘除的asc码应该是相连的吧,对4取余加上'+'就好了,后来发现事实并没有那么简单,好在只有四个运算符,用switch就好了

4.5 大作业总结

1.让我熟悉了如何去使用time以及stdlib函数库的个别函数,知道如何去获得随机的数字,字
2.首次接触了windows函数,粗略了解了如何弹出一个选择窗口

转载于:https://www.cnblogs.com/Rasang/p/9863744.html

你可能感兴趣的:(c/c++)