C语言博客作业--函数
一、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.还可以,考试之前自己认为自己的循环的学的差,但居然前四题能在考试时间内做出来,有可能是这些类型我刚好会。
对于上机考试还是有些惧怕,原因肯定是自己平时的知识点和课本上的内容没有掌握透彻,只希望以后能把课本的内容融入打代码的过程中,使知识得到充分的运用,使自己熟练起来。