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

1.本章学习总结

1.1思维导图

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

1.2.1学习体会

在本章的学习中,我学到了函数的应用,学到了什么是全局变量什么是局部变量,以及静态局部变量在计算累加累乘数时该怎么用。但是平时看书时间太少,许多基础知识还不清楚,以后会多看看课本。在pta的作业难度上,明显比前两次作业要来的简单,但自己在做的过程中仍会出现粗心的问题,比如写错循环条件,导致无限循环。今后会更加注意,以免将来代码量大的时候找不出错误。以后还应该注意认真审题,提高做题效率。

1.2.2代码累计


2.PTA总分

2.1截图

2.2我的总分

我的总分:145


3.PTA作业

3.1PTA题目一

本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。

3.1.1算法分析

定义返回第n项Fibonacci数的函数
   定义整型变量 i,fn1=0,fn2=0,fn,flag=0
   for i=1 to n do
       if i==1 || i==2 then fn=1
       end if
       fn1=flag
       if i>2 then fn=fn1+fn2
       ebd if
       flag=fn2
       fn2=fn
   end for
   返回 fn 的值
定义在一行中输出给定范围[m, n]内的所有Fibonacci数的函数
   定义整型变量 j,flag1=0,x=0
   for j=1 to 10000 then 
       if m<=fib(j) && fib(j)<=n then
           flag1=1
       end if
           if x!=0 then 输出空格
           end if
           输出 Fibonacci数
           x=x+1
       if fib(j)>=n && flag1!=1 then 输出 "No Fibonacci number"
       结束循环
       end if
       if fib(j)>n then 结束循环
       end if
   end for
输出

3.1.2代码截图

3.1.3测试数据

3.1.4PTA提交列表及说明

  • Q1 末尾空格多了一个。

  • A1 将空格提至输出数字前,第一个输出数字前不输出空格。

  • Q2 当输入1 1 2时,Fibonacci数只输出了一个1,但题目要求两个。

  • A2 将最后一行中的跳出循环条件改了一点点,使程序可以跳出两个相同Fibonacci数。


4.大作业

题目:实现小学四则运算。

4.1.函数关系图

4.2.函数功能介绍

1.函数一

功能:随机产生第一级的1位数的一步加减乘除计算题。
思路:先输入想挑战的次数,设为循环次数。循环体内,随机产生两个一位数字和一个字符(+,-,*,/),然后通过switch语句给正确答案赋值。若自己的回答等于正确答案,right加一。 ( 随机产生题目时应考虑小学计算中不会出现负数,除号后不为零,除法不应该为小数。)



2.函数二

功能:随机产生第二级的2位数的2步加减计算题。
思路:先输入想挑战的次数,设为循环次数。随机产生两个二位数字和一个字符(+,-) 用到switch语句得到正确答案,再对比自己的回答和正确答案,累计答题数目和正确题目数,最后计算成功率。



3.函数三

功能:随机产生第三级的3位数的2步加减计算题。
思路:与函数二差不多。


4.函数四

4.3 运行结果截图

开始页面

函数一

函数二

函数三

输入非法字符截图

  • 1

  • 2

  • 3

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

  • 1.在调试计算正确率的函数时,结果总是不对,后来发现是写行参位置时和定义变量时搞错。不够仔细。
  • 2.因为是小学,所以要控制随机产生的计算题的结果中不出现小数和负数,为了实现这个,刚开始在switch中加if语句,但调试出来会卡住,后面把if语句放在外面就行了。

4.5 大作业总结

  • 1.还没开始做之前,完全没有头绪,但是当自己理清思路后
  • 2.在输入非法字符怎么解决的问题上想了很久,后来百度得知输入非法字符时scanf=0,利用这个解决了问题。
  • 3.刚开始不知道怎么产生一个范围内的随机数,后来百度知道可以用公式,如:要输出m<=r<n范围内的数字,用rand()%(n-m)+m;
  • 4.刚开始不知道怎么产生随机字符,后来找到两种方法,第一种是把运算符放在数组里,随机产生数字对应数组中的各个运算符,这种方法我用在函数一中;第二种是利用switch来实现,我用在二,三函数中。
  • 5.以后做题要积极一点,只有先去做才能去实现自己的想法,才能找出自己的漏洞。
posted @ 2018-11-13 19:52  chianun  阅读(533)  评论(0编辑  收藏  举报