C语言I博客作业05
-
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9825 我在这个课程的目标是 学会自定义一个函数,了解其基本用法 这个作业在那个具体方面帮助我实现目标 自定义函数的使用,阶乘函数的编译 参考文献 《C语言程序设计》《PTA实验指导》百度百科
1.PTA实验作业
1.1 水仙花数判断
题目内容描述
本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=1^3+5^3+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0.
函数接口定义:
int func(const int N);
其中N是用户传入的参数。N的值不超过int类型的范围。如果参数N是水仙花数,则返回1,否则返回0。
1.1.1数据处理
- 数据表达:用了sum和x等整形变量,给x定义赋值。
- 数据处理:表达式为sum += (x % 10) * (x % 10) * (x % 10),开始输入n,通过函数func,判断是否为是否为素数,是则输出1,否则输出0.
函数参数:主调函数的名称main,被调函数的名称func,被调函数的类型为整型,为形参。
1.1.2实验代码截图
1.1.3 造测试数据
-
输入数据 输出数据 说明 50 0 不是素数 100 0 不是素数 153 1 是素数 0 1 不符合代码条件 1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:在int func(const int n)后多加了个分号,if (sum == n)只写了一个=,还有多处没空格。
2.答案错误:return 0和return 1弄反了 ,改正后答案正确。1.2 求组合数
数据内容描述
本题要求编写程序,根据公式Cnm=m!(n−m)!n!
算出从n个不同元素中取出m个元素(m≤n)的组合数。
建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
输入格式:
输入在一行中给出两个正整数m和n(m≤n),以空格分隔。
输出格式:
按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。1.2.1 数据处理
- 数据表达:定义了a,x,y,m,n,等变量,定义一个fact函数。
- 数据处理:表达式为y=fact(n-m);m=fact(m);n=fact(n);x=n/(m*y);开始时输入x,y,m,n,在定义fack函数。
函数参数:主调函数的名称main,被调函数的名称fact,被调函数的类型为整型,为实参。
1.2.2 实验代码截图
1.2.3 造测试数据
-
输入数据 输出数据 说明 0 5 1 m=0,n=5时的运行结果 5 10 252 m=5,n=10时的运行结果 10 15 3003 m=10,n=15时的运行结果 15 20 15504 m=15,n=20时的运行结果 1.2.4 PTA提交列表及说明
提交列表说明:
1.编译错误:在printf("result = %.0lf",x);中%。0lf的0未写,导致编译错误。
2.答案错误:这句x=n/(my);写成了x=m/(ny),这属于代码与题目不符。
3.答案错误:在最后printf函数中输出了y,而应该是输出x。
2.代码互评
同学代码截图
自己代码截图
1.他引用了五个变量,而我只用了两个变量,变量应该少一点较好。
2.在我的代码中引用了一个while的函数,使代码变得更加简洁。
3.他的代码直接用nnn的方式,感觉更加简便。同学代码截图
自己代码截图
1.整体来看两份代码格式差不多,他的代码虽然更短,但也更复杂。
2.我的代码中用了for语句,恰到好处。很简单,但很实用。
3.他在代码中用了数学函数pow,用的很好。但我的代码就用了int函数。3.学习总结
3.1 学习进度条
-
周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题 3/10 8-10 11 12h 90 4/10 15-10 18 20h 70 学会了for语句,对整体也更加了解 double和int还是有点分不清 5/10 22-10 26 15h 88 学会了调用一个自定义函数 对自定义函数的概念还很模糊 3.2 累积代码行和博客字数.
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
本人对本周的学习内容略感较难,上课的时候听的很认真,也听得懂,感觉上是回会了,但是当我看了一下作业之后才发现,我太天真了,是真心看不懂,也就第一题还会,后面那几个题目对我来说还是有点小难。但是经过我的奋斗,还是艰难的完成了作业。