函数

一、PTA实验作业

题目一、7-22 求组合数(15 分)

本题要求编写程序,根据公式Cnm​​=m!(nm)!n!​​算出从n个不同元素中取出m个元素(mn)的组合数。

建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double

输入格式:

输入在一行中给出两个正整数m和n(mn),以空格分隔。

输出格式:

按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。

输入样例:

2 7

输出样例:

result = 21

1、本题PTA提交列表
函数_第1张图片

2、设计思路

先输入m,n

定义一个子函数fact用来算阶层;

计算sum=fact(n)/(fact(m)fuact(n-km))

输出sum的值

子函数:

定义整型变量i,双精度浮点型变量result.

当i=1,i<=n时执行循环,计算出result=出result*i,直到i>n时结束循环

返回出result值

 

结构图

函数_第2张图片

3、代码截图

函数_第3张图片

4、调试过程

函数_第4张图片

 

 输出的时候没有注意到结果不能有小数,将result = %lf改成result = %.0lf

 

题目二、、7-25 求幂之和(15 分

本题要求编写程序,计算sum=21​​+22​​+23​​++2n​​。可以调用pow函数求幂。

输入格式:

输入在一行中给出正整数n(≤10)。

输出格式:

按照格式“result = 计算结果”输出。

输入样例:

5

输出样例:

result = 62

1、本题PTA提交列表
函数_第5张图片

2、设计思路

定义n,i,sum 

输入n;

定义一个子函数:用循环的方式求幂的和

 

结构图:

函数_第6张图片

3、代码截图

函数_第7张图片

 

4、调试过程

由于本题一次性通过,没有什么错误调试,需要注意的地方是定义的子函数类型与调用时要一致,还有就是要注意输出格式要与题目一致

 


 

 题目三、7-41 判断数字字符(10 分)

编写函数,判断指定的字符是否是数字字符,如果是函数返回1,否则函数返回0.要求在主调函数中输入该字符,调用函数并输出判断结果。

输入格式:

在一行中给出1个字符。

输出格式:

对于给定输入的字符,输出判断结果yes或no。

输入样例: 6

输出样例: yes

输入样例: H

输出样例: no

1、本题PTA的提交列表

函数_第8张图片

2、设计思路

 现将要判断的字符a输进去

写一个子函数[若满足a>='0'&&a<='9',则返回值为1,否则返回0]

在主函数里面判断若返回值为1,则输出yes

若返回值为0,则输出no

 

结构图:

函数_第9张图片

3、代码截图

函数_第10张图片

4、调试过程

因为本次题目一次性通过,个人觉得需要注意的是子函数中的条件0和9需要写单引号,因为他们是作为字符为条件


 

 二、同学代码互评

函数_第11张图片             函数_第12张图片

 

我的程序的子函数是求阶层和的,而芷逸的子函数中直接算结果,需要多次循环算阶层,子函数冗长,没有简化程序

我的程序比较简洁,我比较喜欢自己的程序

三、本周PTA最后排名

函数_第13张图片

 

四、我的学习总结
1、我学会了什么
本周通过对函数的学习,
1.函数的返回值类型,也就是函数return的内容的类型,注意如果有多种结束函数途径的话一定要有多个return
2.函数形参的传递关系,是实参传给形参,有的可以改变值,有的不可以改变值
3.利用函数的形式,可以减少程序的一些循环算法,使程序变得简单
4.int类型的函数可以不用声明,void类型的函数没有返回值
2、不会的地方
用函数调用整个数组的时候有时会出错,有时候函数的类型会混淆

你可能感兴趣的:(函数)