码迷,mamicode.com
首页 > 编程语言 > 详细

C语言博客作业--函数

时间:2017-11-18 23:46:13      阅读:548      评论:0      收藏:0      [点我收藏+]

标签:void   浮点型   png   功能   条件表达式   表达   class   可读性   步骤   

一、PTA实验作业

题目1:400~499 中4出现的次数

1. 本题PTA提交列表

技术分享图片

2. 设计思路

  • 1.定义整型变量j为循环次数,number为一个数中4的个数
  • 2.对number赋初值为0,采用for循环
  • 3.如果x%10==4,则使number加一
  • 4.计算x=x/10,改变x的值
  • 5.重复步骤3,4直到j>3 结束循环
  • 6.返回number到主函数

    3.本题调试过程碰到问题及PTA提交列表情况说明

  • 错误代码
    技术分享图片
    技术分享图片
    技术分享图片
    技术分享图片
    以为return 1可以实现多次,但调试看出i=403时,k是4,i=404时,k是5就返回主函数了,并不是k=6,所以发现了错误.

题目2:使用函数输出指定范围内的完数

1. 本题PTA提交列表

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

2. 设计思路

int factorsum( int number )函数

  • 1.定义整型变量i为循环次数,N为求余数,sum放因子,初值为0
  • 2.如果number等于1,则直接return 1;否则进入for循环
  • 3.计算N=number%i,如果N等于0,则计算sum=sum+i
  • 4.重复步骤3,直到i>number/2
  • 5.如果number等于sum,则返回return sum

    void PrintPN( int m, int n )函数

  • 1.定义整型变量j,k为循环次数,count为求余数赋初值为1,flag赋初值为0
  • 2.如果m等于1,就输出1 = 1然后换行
  • 3.否则进入双层for循环,j=m开始且flag=0
  • 4.调用factorsum(j)函数,如果函数值=j,则输出j=
  • 5.进入内层for循环,计算count=j%k且flag加一
  • 6.如果count=0且flag=1,输出k;如果count=0且flag不等于1,输出+k;如果count=0且k等于j/2,则输出换行
  • 7.内层循环重复步骤5,6直到k大于j/2结束
  • 8.外层循环重复步骤3,4,5,6,7直到j大于n
  • 9.如果count==1&&m!=1&&n!=1,则输出No perfect number

    3.本题调试过程碰到问题及PTA提交列表情况说明

    技术分享图片
    技术分享图片
    从第一张图看出结果里面有两个因子1,第二张图框出来的条件解决了问题,因为原来当flag等于1时会满足前两个if
    技术分享图片
    技术分享图片
    技术分享图片
    技术分享图片
    若最后条件是count!=0则会导致多输出No perfect number,则要对最后条件改变

题目3:求组合数

1. 本题PTA提交列表

技术分享图片

2. 设计思路

主函数

  • 1.定义整型变量m,n,浮点型变量a,b,c,resuit
  • 2.输入m,n
  • 3.调用fact()函数 a=fact(m);b=fact(n);c=fact(n-m);
  • 4.计算result=b/(a*c)
  • 5.输出result

    double fact(int n)函数

  • 1.定义整型变量i,浮点型变量sum为1.0
  • 2.计算sum=sum*i
  • 3.重复步骤3,直到i大于n结束
  • 4.return sum到主函数

    3.本题调试过程碰到问题及PTA提交列表情况说明

  • 1.第一个答案错误是没有对sum赋初值
  • 2.第二个答案错误是输出的result不是整型

    二、同学代码结对互评

    1.同学互评照片

    技术分享图片

    2.我的代码、互评同学代码截图

  • 黄光奎的代码
    技术分享图片
  • 我的代码
    技术分享图片

    3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

    我的代码用的是题目的公式,而黄同学用的另一个公式,例如C2 5=(54)/(21)
    而且他的代码函数名以及变量名取得不让人很懂,还有resultblow=itemi,item一直是1,不是很懂他为什么要填一个item,还有下面公式是一样的情况,是不是当时脑子秀逗了。
    我觉得我的代码可读性还可以,能让读代码的人知道在干嘛,黄同学的代码我一开始看不知道在干什么,想了一会才知道他用的什么方法。

    三、截图本周题目集的PTA最后排名

    技术分享图片

四、本周学习总结

1.你学会了什么?

  • 1.1
    C语言的三种基本数据类型:整型,字符型,实型
    整型有有符号和无符号之分,每种都有整型,短整型,长整型三种
    实型包括单精度浮点型,双精度浮点型
  • 1.2
    字符型具有数值特征,转义字符要注意
  • 1.3
    自增自减运算符都有两个功能:使变量的值增1或减1;取变量的值作为表达式的值
    但++n和n++有很大区别:++n是先算后赋,n++是先赋后算
  • 1.4
    逻辑!》算术》关系》逻辑&&,||》条件》赋值》逗号
  • 1.5
    算术表达式 赋值表达式 关系表达式 逻辑表达式 条件表达式 逗号表达式

2.本周的内容,你还不会什么?

  • 1.对于字符型数据和整型数据的转换不太熟练
  • 2.进制格式不清
  • 3.数字字符转数字
  • 4.++n和n++还是有时候会混淆
  • 5.对于长的表达式,优先级和结合性就会乱
  • 6.位运算的知识掌握的不清

3.循环结构考

  • 1.最后一题没有得满分,当时考试用的是for循环,对于一些要求不能满足。
    考完后看同学的代码后知道这道题不能用for循环,要用while循环才能解决问题。
  • 2.还可以,考试之前自己认为自己的循环的学的差,但居然前四题能在考试时间内做出来,有可能是这些类型我刚好会。
    对于上机考试还是有些惧怕,原因肯定是自己平时的知识点和课本上的内容没有掌握透彻,只希望以后能把课本的内容融入打代码的过程中,使知识得到充分的运用,使自己熟练起来。

C语言博客作业--函数

标签:void   浮点型   png   功能   条件表达式   表达   class   可读性   步骤   

原文地址:http://www.cnblogs.com/wlc0116/p/7856028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!