首页 > 编程语言 > 详细

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

时间:2018-11-13 12:45:39      阅读:215      评论:0      收藏:0      [点我收藏+]

1.本章学习总结

1.1 思维导图


技术分享图片


1.2学习体会


  • 1. 通过本周的学习,学习到了函数,终于学到函数了,老是看其他人说函数很有(牛)(逼) ,学习了以后,觉得很有道理技术分享图片 还学到了数据类型和表达式,觉得一下子 信息量巨大
  • 2. 关于函数的各种规则还有各种事项注意还是很多的,比如:函数首部后面不能加分号,这样子才能和函数体一起构成完整的函数定义;定义形参时候,定义一个变量就得以变量的定义的形式都写出,不能写成double r,h;形参和实参必须一一对应,两者的数量还得一样,类型一致,顺序一致等等一堆。技术分享图片
  • 3. 知道返回值不一定为0了,也可以返回函数的运算结果等等,还可以不用返回 ,函数类型为void,就可以不返回结果(○′?д?)?;还可以利用return终止函数,如果想要提前结束函数就用上return,但return只能返回一个值。
  • 4.局部变量,全局变量,静态变量,静态局部变量,知道各种变量的有效作用范围还有了解到各种变量在什么情况下使用会更好,瞬间觉得这些变量都不一样(高大上)︿( ̄︶ ̄)︿ ( ̄︶ ̄)︿( ̄︶ ̄)︿
  • 5.后来老师又教会我们各种数据的类型我们有了更深的了解。。。各种原码,反码,补码,懵逼,只怪当初网络工程导论时候。。。你懂的(⊙_⊙),老师讲了一下知道了每种数据类型的取值范围大小,还有一些新的知识,了解到了一些新的转义字符,不仅仅只知道换行符\n,知道以十六进制或八进制输入或输出的格式控制,了解到自动类型转换和强制类型转换,特别啊是这个强制类型转换,觉得很有用呢,想要得到整数或小数的话通过强转可以实现。
  • 6. 觉得连运算符都开始欺(虐)(待)我们,单目运算符,双目运算符,还有其他各种的运算符,还得考虑他们的优先级还有结合方向,简直是复(恶)(意)(满)(满) 还有个变态的技术分享图片
    n++与++n这整个式子两个的值居然不一样,n++的值为n,++n的值为n+1,百度了解了一下为啥,是因为运算符的优先级原因
还没接触函数时候  (⊙v⊙)
开始学习函数,一大堆需要掌握的ε(┬┬﹏┬┬)3ε(┬┬﹏┬┬)3ε(┬┬﹏┬┬)3更难更变态/(ㄒoㄒ)/~~
这次需要学习的知识有点太多了,函数还有各种数据类型什么的,需要我们慢慢消化理解,尽管知道还有更难的需要学习,这一次可以做点有点意思的代码可以算得上是“有用处的”代码,大作业,有点那种程序员的感觉,甚至还有同学自己做出了个游戏出来,很厉害,对学习代码还是很有兴趣
写完函数,再看一整段代码挺简洁整齐好看的,心里还是觉得很爽(~ ̄▽ ̄)~

技术分享图片


1.2.2 代码累计

技术分享图片

技术分享图片



2.PTA总分

技术分享图片

2.2我的总分:

     C-函数:145
     总分:145


3.PTA实验作业

3.1 PTA题目1

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

3.1.1算法分析


定义 fib 函数  作为返回第n项Fibonacci数 
定义 形参 n
定义 x1(作为前一项)为1,x2(新项)为1,x计算x1,x2两者的和,i为循环变量 
for i=1 to n-2 do 
    x=x1+x2
    x1=x2   //更新x1,x2,为计算下一个新项x做准备 
    x2=x
    i++
end for 
if n==1或n==2 then x=1 // 当输入的 n为2或1时候 输出斐波那契数1 
end if
return x  //返回x来输出第n位的斐波那契数


定义 PrintFN 函数  无返回值
定义 形参 m,n
定义 num1为从1求m至n中符合的斐波那契数,num2为 count为计算有多少斐波那契数,flag为0 
for num2=0 to num2<=21 do //前21个斐波那契数是小于10000 ,将每一个斐波那契数计算出,再来筛选
      num1++
      if fib(num1)>=m 并且 fib(num1)<=n then //符合在m至n中的所有斐波那契数
         count ++   //计算有多少数 
         if flagd==0  then   //第一个数后面先不加空格,以防只有一个数后面还有空格 
            输出fib (num1) 
            flag++
            continue
        end if     
        else  输出 fib(num1)  //在每一个数前面输出空格这样子可以防止最后一个数后面有空格
    end for
if count==0 then   //没有斐波那契数的情况单独分出
    输出No Fibonacci number       
end if
   
   

3.1.2 代码截图

技术分享图片

技术分享图片


3.1.3 测试数据

技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片


3.1.4 PTA提交列表及说明

技术分享图片


 Q1:起初第一个函数的写法是正确的,所以才有一分,但是第二个函数不管怎么改正,还是一直输不出正确答案的数字
 A1.是空格的原因,使得格式一直错误,最后一位数字后面总是出现空格,并且如果只输出一位数字时候后面也是带着空格的
 Q2.对于空格原因,我起初发现是空格原因时候,还想着判断这是第一个输出的数还是最后的数,最后把整个代码搞得越来越乱┑( ̄Д  ̄)  -_-|||
 A2.后来想起来前面也有题目相类似的,然后翻看一下想起来怎么做,先输出第一个数字但是不带空格,接着输出的数字都是以这种格式:数字空格。输出这样子就可以避免数字最后带空格情况
 Q3: 当输入的t值为1或2时候,输出结果都为0,搞得最后有两个测试点一直过不了
 A3:本来以为是在第二个函数里面的错,结果越改越离谱(⊙﹏⊙)b改无可改**(濒临崩溃)**情况下才把眼光瞄准第一个函数,后来发现忘记考虑n等于1或2其实是在第一个函数内的,然后。。。就是利用判断条件来分n是否等于1,2。。。

技术分享图片



4.大作业

4.1 函数关系图

技术分享图片

4.2函数功能介绍

  • 1.函数1
    显示函数 :
    功能:
    1.显示菜单,显示界面
    2.让读者选择作业难度

技术分享图片
技术分享图片

  • 2.函数2
    选择函数:
    功能:
    1.让读者选择要做多少题目
    2.使用清屏函数,将上面的菜单清除
    3.并且进入不同难度的函数
    技术分享图片

  • 3.函数3
    难度1级
    功能:
    1.调用时间函数,计算读者做这些题目所用的时间
    2.调用随机函数,来随机输出两个数,并且通过随机数取于4的值来随机输出运算符号
    3.通过变量flag来让读者决定是否要继续做
    4.判断是否做题正确,并且计算正确率
    技术分享图片
    技术分享图片
    技术分享图片

  • 4.函数4
    难度2级
    功能:
    1.调用时间函数,计算读者做这些题目所用的时间
    2.调用随机函数,通过随机数取于90再加10就可以得到两位数,这样子来随机输出两个数,并且通过随机数取于4的值来随机输出运算符号
    3.先计算前两位数的值,再将这个结果保留,再随机输出一个数,再随机输出一个运算符号,再将上一个结果与新的数计算
    4.通过变量flag来让读者决定是否要继续做
    5.判断是否做题正确,并且计算正确率
    技术分享图片
    技术分享图片
    技术分享图片
    技术分享图片

  • 5.函数5
    难度3级
    功能:
    1.调用时间函数,计算读者做这些题目所用的时间
    2.调用随机函数,通过随机数取于900再加100就可以得到三位数,这样子来随机输出两个数,并且通过随机数取于4的值来随机输出运算符号
    3.先计算前两位数的值,再将这个结果保留,再随机输出一个数,再随机输出一个运算符号,再将上一个结果与新的数计算
    4.通过变量flag来让读者决定是否要继续做
    5.判断是否做题正确,并且计算正确率
    技术分享图片
    技术分享图片
    技术分享图片
    技术分享图片

  • 6.函数6
    做正确的提示
    功能:
    1.通过随机数取于4的值来随机输出做正确的提示
    技术分享图片

  • 7.函数7
    做错误的提示
    功能:
    1.通过随机数取于4的值来随机输出做错误的提示
    技术分享图片

  • 8.函数8
    主函数
    功能:
    1. 放各个函数
    技术分享图片

4.3运行结果截图

*1.界面
技术分享图片

*2.输入正确数
技术分享图片

*3输入错误等级
技术分享图片

*4一级难度
技术分享图片

*5二级难度
技术分享图片

*6三级难度
技术分享图片

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

  • Q1: 每做完一题要有退出选项
  • A1:设置一个变量flag来控制程序的进行,如果输入1继续学习,输入2退出程序
  • Q2: 菜单的页面使得整个程序输出界面很大很多很多
  • A2:需要清屏函数,并且清屏函数要放的位置得注意,不然会使得清屏的地方错误
  • Q3: 有除数为0情况一开始忘记考虑到,后来自己测试时候发现到了
  • A3:再利用while以及再将除数利用随机数再随机输出一个数,直到除数不为0

4.5大作业总结

  • 1. 不懂的问题可以通过百度或者去询问别人(虽然自己写的函数现在别人也不一定看得懂了),比如时间函数,来设置答题时间,还有随机输出函数啊,也是通过百度来知道怎么书写的。
  • 2.一开始有很多bug但是自己一开始还以为没有错的代码,然后自己不断输入发现了很多问题,还是得通过测试来发现错误的地方。
  • 3. 代码量大,调试起来比较麻烦,所以可以把每个函数给单独拿出来调试,没写一段函数,可以直接拿出来写,调试的话不要全部写完再去调试,可以先写一部分一部分调试。
  • 4.程序界面友好这个问题,必须重视,不然真的如果不是编写代码的人,没有一点提示是不知道下一步怎么做的。

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

原文:https://www.cnblogs.com/zwl-/p/9929696.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!