C语言I博客作业04
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11494 |
我在这个课程的目标是 | 巩固之前的知识,加强对函数定义和调用的熟练程度,掌握自定义函数 |
这个作业在哪个具体方面帮助我实现目标 | 完成PTA的代码作业,阅读优秀代码 |
参考文献 | C语言程序设计 |
1.1 求组合数
题目内容描述:本题要求编写程序,根据公式算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
1.1.1 数据处理
数据表达:其中n,m均为整型变量,sum,result为浮点型变量,n,m的值均由用户输入,i为循环变量,result用于存储最终的运算结果。
数据处理:通过for循环,求数的阶乘,定义fact函数。调用fact函数,通过表达式 result=fact(n)/(fact(m)*fact(n-m)) ,计算出最终结果。
函数参数:主调函数名称 int main(void) 与被调函数的名称 double fact (int number) ,被调函数是整型,实参为n(整型),m(整型),sum(浮点型),形参为number,为整型。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 7 | result=21 | m<n |
5 5 | result=1 | m=n |
3 8 | result=56 | m<n |
10 10 | result=1 | m=n |
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:分号忘记打 语句“double fact (int number)”放在第2行,而对fact函数的定义在所有代码的最后。
忘记在“double fact (int number)”后打分号导致编译错误。应将语句修改为“double fact (int number);”或将fact函数定义过程提前。
2.段错误:"scanf("%d %d",m,n); " 忘记加&。应将语句修改为“scanf("%d %d",&m,&n);"
3.部分正确:个位没有解决好,将"result = %f\n"改为"result = %.0f\n".
1.2 简单实现x的n次方
题目内容描述:
1.2.1 数据处理
数据表达:其中n为整型变量,sum,x为浮点型变量,n的值由用户输入,i为循环变量,sum用于存储运算结果。
数据处理:通过for循环,表达式"sum=sum*x;",求数的n次幂,定义mypow函数。调用mypow函数,计算出最终结果。
函数参数:主调函数名称 int main() 与被调函数的名称 "double mypow( double x, int n )",被调函数是整型,实参为n(整型),x(整型),形参为sum(浮点型)。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
0.24 4 | 0.003318 | x>0,n>0 |
0.24 0 | 1.000000 | x>0,n=0 |
-5 8 | 390625.000000 | x<0,n>0且为偶数 |
-5 7 | -78125.000000 | x<0,n>0且为奇数 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.编译错误:for循环错误,为透彻理解运算过程。表达式应改为"sum=sum*x;"
2.编译错误:为理解题目中的 /* 你的代码将被嵌在这里 */ ,导致编译错误。应将题目给出的裁判测试程序样例在代码中删去,以免重复。
题目:计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
同学代码截图1
自己代码截图1
1.同学定义了denominar,falg,i,n,item,sum等变量,而我定义了N,i,sum三个变量,定义的变量相对少些。
2.我调用了power函数通过for循环来计算,而同学则利用循环和赋值来计算,同学的相对便于理解,运算过程明了,但我的相对简便一点,但容易混淆。
题目:本题要求编写程序,根据公式算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
同学代码截图2
自己代码截图2
1.首先同学的代码排版比我的好,很清晰,易查看,这一点值得我学习。
2.同学将定义fact函数的部分放在前面,而我将其放在后面。我认为同学将其放在前面,则第2行的"double fact (int number);"可以删去,这样更简洁。
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 10h | 76 | 基本格式,定量定义,输入输出 | |
第二周 | 20h | 249 | 赋值,算数运算,if-else语句 | 一些格式不太理解 |
第三周 | 25h | 358 | for循环语句 | 理解但不太会运用 |
第四周 | 30h | 500 | 函数的调用,自定义函数 | 实参,形参不太理解。不太会定义函数 |
3.2 累积代码行和博客字数(5分) | ||||
![]() |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
①学习C语言已经一个多月了,学到了很多知识,也遇到了很多难题。总的来说,学习C语言对我来说很有挑战性,但也激起了我的兴趣,学起来累却又很带劲。
②经过这一周的学习,我对之前学习的知识有了巩固,更加熟悉,对函数的定义和调用也有了一定的了解,但依旧有一些地方不太理解,掌握得不好。比如对实参和形参的定义与区别不清楚,对函数的定义与调用不熟练。
③制定计划,每天进行练习,多看教材与相关资料,多阅读优秀代码并分析学习,提升自己的能力。