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

C语言第五次博客作业--函数

时间:2017-11-18 23:45:42      阅读:600      评论:0      收藏:0      [点我收藏+]

标签:不同   次方   定义变量   告诉   合数   运算符和   为我   一个   class   

一、PTA实验作业

题目1:6-2 简单实现x的n次方

1. 本题PTA提交列表

技术分享图片

2. 设计思路

(1)定义函数 mypow( double x, int n )

(2)定义整型变量i为循环变量,浮点型变量sum为阶乘的积

(3)for i=1 to n 重复下面步骤

(4)计算sum=sum*x

(5)返回sum的值

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

初始代码是这样的:提交错误为段错误
技术分享图片
第二天学霸室友告诉说要用for循环和一个求阶乘的变量,然后我就添加了一个for循环,但是并没有正确,因为我的返回值没有正确,也没有给sum赋值,错误代码如下:

技术分享图片
她看了我的代码无奈的解释道,这个题不用输出,已经定义的变量不用再定义一次,再次改正,还是没有正确,然后就开始调试,运行及调试过程如下:
技术分享图片
技术分享图片
不管i 为多少sum一直都是0,后来把sum定义为浮点型才算正确,正确代码如下:
技术分享图片
一步步下来发现自己的代码离正确代码十万八千里,不知道用for循环,没有重新定义新的变量,没有赋值,输出和返回值也错得一塌糊涂,我不是很明白返回值是什么意思,为啥要返回?又该如何返回?返回给谁?

题目2:使用函数判断完全平方数

1. 本题PTA提交列表

技术分享图片

2. 设计思路

(1)函数接口定义int IsSquare( int n )

(2)int i放循环变量,m放输入的一个整数,M放完全平方数

(3)赋值m=1,M=1

(4)输入一个整数m,当i<=m时,重复循环

(5)如果m*m==M,返回1,否则,返回0

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

初始代码:
技术分享图片
技术分享图片
编译的时候要输入两个以上的数据,但是又只能识别一个数据,要么是前面的YES,要么就是后面的No,如上图所示
PTA提交列表为部分正确,根据提示好像是少考虑了m负数的情况了,但是改着改着改成了编译错误

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

1. 本题PTA提交列表

技术分享图片

2. 设计思路

(1)int integer放整数,i放循环变量,count放4的次数,single放个位数字,ten放十位数字,hundred放百位数字

(2) 分别求个位十位百位的值, single=x%10; //整数取余得到个位数// ten=x/10%10; //除10再取余得到十位数// hundred=x/100; //除以100得到百位数//

(3)个位为4,十位和百位不为4,十位为4,个位和百位不为4,百位为4,个位和十位不为4,则4出现的次数为1次

(4)个位不为4,十位和百位为4,十位不为4,个位和百位为4,百位不为4,个位和十位为4,则4出现的次数为2次

(5)个位十位百位都为4,则4出现的次数为3次

(6)个位十位百位都不为4,则4出现的次数为0次

(7)返回count

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

第一次没有仔细检查符号标点等细节造成编译错误,第二次是答案错误,因为没有考虑count=0的情况,也没有在每个if的后面加上count,补上之后就正确了,代码过程如下:
技术分享图片

技术分享图片

题目4:求组合数

1. 本题PTA提交列表

技术分享图片

2. 设计思路

(1)int m,n; double result;

(2)输入m,n

(3)调用函数求阶乘 fact(n); fact(m);fact(n-m);

(4)根据公式计算结果 result=fact(n)/(fact(m)*fact(n-m));

(5)result = 组合数计算结果”输出

(6)定义求组合数函数

(7) int i为循环变量, double sum实现累乘

(8)当i<n,重复循环,sum=sum*i

(9)返回sum

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

(1)调用函数求阶乘的时候只调用了一个,没有对sum赋值,

(2) 计算result=fact(n)/(fact(m)*fact(n-m))没有把除号后面括起来,导致结果很大

(3)定义变量的时候想太多,以为很复杂,所以定义了很多个循环变量

(4)result = %.0f和result = %f的区别

技术分享图片

二、同学代码结对互评

1.同学互评照片

技术分享图片

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

我的代码:
技术分享图片

雅慧的代码:
技术分享图片

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?

我和雅慧代码不同在我的多,她的少

我的优势是变量定义得比她的详细,她的优势是代码少,清晰,她用了for循环,而我没有

我更喜欢她的风格,但是她的代码我没看懂,我的我看懂了

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

技术分享图片

四、本周学习总结

1.你学会了什么?

c语言的数据类型有整型,浮点型,字符型。
字符型数据不能乱打空格,因为空格也算一个字符
自增自减运算符的运算对象只能是变量,不能是常量或表达式,n++和n--都相当于n=n+1,但是n++的运算顺序是先将n的值作为表达式n++的值,再执行n=n+1,++n的运算顺序是先执行n=n+1,在将n的值作为表达式++n的值。n--和--n 同理

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

二进制,十进制和十六进制,补码反码原码,运算符和表达式,l例如a+=a-=a*a总是会算错

3.循环结构考试总结

1.哪题做错了,怎么改?

一个题都没做对,不知道要怎么办了都

2.考试结果满意么,怎么改进?

不满意,还是学不会啊,谁能教教我怎么改进

C语言第五次博客作业--函数

标签:不同   次方   定义变量   告诉   合数   运算符和   为我   一个   class   

原文地址:http://www.cnblogs.com/danzhai/p/7829132.html

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