C语言I博客作业05
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | C语言1博客作业05 |
我在这个课程的目标是 | 学会运用函数编代码 |
这个作业在那个具体方面帮助我实现目标 | 写C语言作业的时候,编代码的实践中 |
参考文献 | 教材《C语言程序设计1》 |
一、Pta实验作业
1.1求组合数
本题要求编写程序,根据公式算出从n个不同元素中取出m个元素(m≤n)的组合数
建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
输入格式:
输入在一行中给出两个正整数m和n(m≤n),以空格分隔。
输出格式:
按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。
输入样例:
输出样例:
1.1.1数据处理
数据表达:使用了整型int变量i,m,n,其中i连用了2次,浮点型double变量result,M,N,Q以及定义和调用函数fact(n)
其中double变量result要通过整型变量i通过for循环语句循环式子 result = resulti得出,而M,N,Q则是用来附上函数fact(n)的;
数据处理:首先一个基础源程序框架,然后函数声明:double fact(int n);主要通过for循环语句时result = resulti以及最终的:result = fact(n)/(fact(m)*fact(n-m));
** 函数参数:int main() 为主调函数;double fact(int n)为被调函数;整型;实参为result;形参为n,都为整型。
1.1.2实验代码截图
1.1.3 造测试数据
|||
-|-|-|
输入数据|输出数据|说明|
6 7|result = 7|m≤n|
7 7|result = 1|m=n|
8 7|result = 0|n≤m|
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:第16行int i后面没打“;”;
2.答案错误:输出结果没按照“result =”来写;
3.答案错误:结果保留小数错了。
1.2水仙花数判断
本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=13+53+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0.
函数接口定义:
其中N是用户传入的参数。N的值不超过int类型的范围。如果参数N是水仙花数,则返回1,否则返回0。
裁判测试程序样例:
输入样例:
输出样例:
1.2.1数据处理
数据表达:使用了整型int变量sum,n
数据处理:基础源程序框架,运用while循环语句和if-else判断语句来运行表达式sum +=(n % 10)(n % 10)(n % 10);n /= 10;
** 函数参数:int main() 为主调函数;被调函数:int func(const int N),被调函数的名称func,被调函数的类型为整型,形参N.
1.2.2实验代码截图
1.2.3造测试数据
|||
-|-|-|
输入数据|输出数据|说明|
7|1|素数|
100|0|不是素数|
0|1|代码条件之外|
1.2.4PTA提交列表及说明
二、代码互评
同学(付翔亮)代码截图
同学(乐树文)代码截图
我的代码截图
- 第一位同学和第二位同学的代码区别:第一位同学代码用的while循环语句,而第二位同学用的是for循环语句;而且第一位同学用的n /=10表示得到的值等于n除以10后商的整数部分,而第二位同学则用了两个表达式x=i%10和i=i/10来表达这个意思,而且第一个同学做了一些多余的操作,在最后那里多加了个“{}”,虽然不影响,但完全没必要。
- 我和两位同学的代码区别:我的代码和第一位同学的差不多,不过就是排版好看一些,所以和第二位同学的区别类似于第一条。
三、学习总结
3.1 学习进度条
|||||
-|-|-|-|-|
周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题|
第七周|10小时|132行|常用的数学函数,if-else语句|函数的运算问题|
第八周|13小时|156行|学会运用for循环语句和知晓DevcC++调试|对于DevcC++还是不大会用|
第九周|12小时|145行|学会了函数定义和调用函数|对于函数的返回,不是很理解|
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第五周 | 464 | 0 |
第六周 | 1017 | 50 |
第七周 | 1638 | 185 |
第八周 | 2533 | 341 |
第九周 | 3421 | 520 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
- 本周学习了定义和调用函数,以及函数的返回;
- 这周进一步进行了代码的调试,上周我只是知道有这么个东西,会流程,具体操作其实并不会,这周会了大概,设置断点,添加查看变量,一步一步测试;
请用思维导图的形式将到目前为止所学的内容进行整理。
3.3.2 学习体会
学到的东西越来越多,题目难度也越来越大,有点不适应了,时间越来越紧迫,不是说大一最轻松吗。。。我怎么感觉玩的时间都没有,一周两节课,作业也有两次。通过课本稍微学了一点while的循环语句,感觉比for循环语句使用方便,也可能是题目问题,还不够熟练,为了变优秀,我还得继续努力啊。