c语言函数作业
一、PTA实验作业
6-3 使用函数判断完全平方数
1. 本题PTA提交列表
2. 设计思路
1.利用由题目给定的int IsSquare( int n )进行操作
2.首先判断n是否大于0.
3.若n>0,则根据函数n*1.0/sqrt(n)是否等于sqrt(n)来判断是否为完整数,符合则return 1,不符合则return 0.
4.若n=0,return 1.
` 5.若n<0,return 0.
3.本题调试过程碰到问题及PTA提交列表情况说明
` 没有考虑n=0也是完整数而答案错误.
6-7 使用函数输出指定范围内的完数
1. 本题PTA提交列表
2. 设计思路
1.由题目给定的函数int factorsum( int number ),void PrintPN( int m, int n )进行下一步操作.
2.首先要对正整数m和n用 factorsum( int number )来判断其是否为完数.
3.利用循环语句来判断.
4.如果number是1,因为1是完数,所以return 1;
5.若number!=1,继续进行下一步的判断是否number%i=0.
6.符合继续执行用变量s将这些因子加起来.
7.因为完数就是该数恰好等于除自身外的因子之和,所以循环结束后要减去自身的值
8.再进行s是否等于number的判断,最后输出number;
9.再利用函数void PrintPN来输出完数及其因子的和.
10.同样用的是i=m;i<=n;i++的循环语句,同样判断i是否为1.
11.符合则输出"1 = 1",换行,并且用count来判断统计完数的个数
12.若i!=0,就要用类似factorsum的循环语句来判断,这里用j=1;j<=i-1来对其判断
13.同样是否i%j=0;
14.符合用变量s将这些因子加起来,并且减去自身的值后是否等于i,等于则count加一,并且输出i.
15.再求i的因子的相加式,用j=;j<=i-1的循环语句.
16.同样判断是否i%j=0,符合则输出空格和j.
17.再用函数是否j<i/2来进行"+"和空格的输出,若符合则输出空格和"+".
18.输出完数及其因子相加式后输出换行.
` 19.最后对完数的个数进行判断,如果count=0,则输出"No perfect number"
3.本题调试过程碰到问题及PTA提交列表情况说明
7-1 求组合数
1. 本题PTA提交列表
2. 设计思路
1.自定义函数double fact(int x)
2.定义整形变量m和n.
3.输入m和n.
4.输出"result = %.0f",fact(n)/(fact(m)fact(n-m)).
5.进入函数double fact中进行计算.
6.利用 i=1;i<=x循环语句和fact=fact1来求x的累乘.然后返回fact的值
3.本题调试过程碰到问题及PTA提交列表情况说明
二、同学代码结对互评
1.同学互评照片。
2.我的代码、互评同学代码截图
` 我的代码
` 佳亮的代码
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
1.我和佳亮一样都是先将一个不能用循环表示出来的值先进行判断,不过我用的值比他多一个,
2.我觉得佳亮的第函数的代码会比较好,它可以少一步循环,更加简洁
三、截图本周题目集的PTA最后排名。
四、本周学习总结
1.你学会了什么?
1.1 C语言哪些数据类型?
整形
长整型
短整形
无符号整形
无符号长整形
无符号短整形
字符型
单精度双精度浮点型
1.2 字符型数据需要注意地方?
` 字符数字的转换用ch-'0'
1.3 自增自减运算符?
a--/a++是后缀(自减)自增,变量值(减少)增加,表达式值不变
--a/++a是前缀(自减)自增,变量值(减少)增加,表达式值增加
1.4 运算符优先级?
` 只有单目运算符和赋值运算符从左到右结合
1.5 C语言哪些表达式?课堂派哪里做错,做错的请在这里分析原因?
` 赋值表达式,逻辑表达式,条件表达式,关系表达式
` j++时后缀自增不变.
1.6 其他内容?
判断字符的优先级.
字符型字母和数字的转换.
2.本周的内容,你还不会什么?
还不会熟练的判断字符的优先级
对于异或还不太会使用
3.循环结构考试总结
1.哪题做错了,怎么改?
` 最后两题,通过dev的重新编译来改.
2.考试结果满意么,怎么改进?
` 不满意,多打代码,熟练的运用for循环语句.
3.其他总结。
数据类型这一块内容多而且杂,要经常去复习和做题巩固
有些比较复杂的题目用while比用for会相对简单得多,而且容易理解