C语言博客作业--函数
2017-11-18 21:02
465 查看
一、第五次PTA作业
题目1.6-1 符号函数
1.本题PTA提交列表
2.设计思路
定义函数sign( 定义整型变量x )如果x>0
返回值1
如果x=0
返回值0
如果以上两种情况都不符合 返回值-1
3.本题调试碰到问题及解决办法
对函数尚不熟悉的时候做的第一道函数题,对返回值这个概念理解错误,第一次写了return sign编译错误,想不通重新去看了书,之后试了sign(x)依旧编译错误,之后问了同学才知道应该返回一个值,而我写的sign是这个函数,并不是返回的对象。题目2.6-2 简单实现x的n次方
1.本题PTA提交列表
2.设计思路
定义函数mypow( 定义浮点型变量x, 整型变量n )定义整型变量i,定义浮点型变量y
y=x
如果n=0 则x=1
否则进入循环for(i=1;i<n;i++)
x=x*y
返回值x
3.本题调试碰到问题及解决办法
一开始将y=x放在了for循环中导致结果错误,改正后发现结果还是不正确,调试发现for循环多运行了一步,即一开始设定了i<=n,发觉自己对这一步是否应该等于n与i的初始值应该设为多少不能马上确定,这以后笔试的话可能就会因为这一点导致扣分,所以更加觉得写代码前写思路很重要,就跟构建好框架一样,提交后部分正确发现自己少考虑了当指数为0的情况。题目3.6-7 使用函数输出指定范围内的完数
1.本题PTA提交列表
2.设计思路
定义函数factorsum( 定义整型变量number )定义整型变量x,sum=0;
如果(number==1)
sum=1;
否则{
运用循环for(x=1;x<number;x++)
如果(number%x==0)
sum=sum+x;
返回sum;
定义函数void PrintPN( 定义整型变量m,n )
定义整型变量k,j,number,o=0;
运用循环for(j=m;j<=n;j++)
如果(运用函数factorsum(j) == j)
打印("%d = 1",j);
循环内再次运用循环for(k=2;k<j;k++)
如果(j%k==0)
打印(" + %d",k);
在第一个循环外如果语句内第二个循环外打印("\n");
如果语句内o++;
跳出循环后如果(o==0)
打印("No perfect number");
3.本题调试碰到问题及解决办法
这题上周做了一直做不出来,然后自己试了用数组的方法后还是差了4分没拿到,对如何逐个输出数值搞不懂,这周听了老师的方法后继续用自己上周的思路重新做了一遍,思路清晰很多,主要是这题学了数组之后还想再用数组的方法再试试,之后成功后会贴出代码。二、同学代码结对互评
1.互评同学名称 :农献清
2.我的代码、互评同学代码截图
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
不同:从图片可以很明显看出两者代码量相差非常大,我在看到她的代码的时候一度怀疑不是同一道题各自优势:很明显她的代码考虑的更多,每一步的思路都很清晰,但相对的步骤就更为繁杂,中间运行时出错的可能性会变大,同时如果每一步都拉出来考虑的话很容易缺少某一步导致写代码的时间量变多,对以后编写有大量代码的程序会很不利
而我的代码非常简洁,思路一步到位,当时为了赶快想着一步解决,这样虽然速度加快了,代码量也减少了,但是出现特殊情况而没有考虑的时候也会出现,所以如果没有严谨的习惯这样写代码很容易出错
两种风格各有特色但是也各有缺点,我希望以后我能慢慢养成一种写代码前脑中能像第一种一样面面俱到思路严谨,然后最后写出了像第二种一样简洁清晰,当然这是需要大量的编程量才能够实现的。