1.本章学习总结
1.1 思维导图
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
通过了本周的学习,更加深入地了解到了函数的用法,也感受到了C语言的魅力。在不断的敲代码过程中,逐渐训练自己的逻辑能力。函数可以高效地覆盖重复代码,使代码看起来更简单有效!
1.2.2 代码累计
2.PTA总分
2.1截图PTA中函数题目集的排名得分
2.2 我的总分:
2018-c-函数 : 145分
总分:145分
3.PTA实验作业
函数题目:因为任何一个不小于6的偶数均可表示为两个奇素数之和,用函数写出来。
3.1.1 算法分析
int prime( int p ) 指出函数prime();
if(p == 1) return 0; 1不是素数;
else if(p == 2) return 1; 2是素数;
for(int i = 2;i <= p / 2;i ++) if(p % i == 0) return 0; return 1; 对大于二的数字进行判断是否为素数:是就返回1,不是就返回0;
void Goldbach( int n ) 指出函数Goldbach();
for(num = 1;num < n;num ++) if(prime(num)) 开始循环使用之前定义的判断素数函数进行寻找素数num(由小到大);
int number = n - num; 找到另一个数字number;
if(prime(number)) 判断number是也是素数;
printf("%d=%d+%d",n,num,number); 如果符合,那么输出结果并跳出循环。
return ;
end for;
3.1.2 代码截图
3.1.3 测试数据
3.1.4 PTA提交列表及说明
由于我是先在Decv++上做的所以我的提交列表不多。
Q1:如何在函数内部调用函数
A1:跟我们大函数一样,直接调用就ok。
4.大作业
4.1.函数关系图
4.2.函数功能介绍
所有函数集合展示图:
1.函数:输出语句
2.函数:界面生成
3.函数:选择难度等级的函数
4.函数:等级题目生成函数
4.3 运行结果截图
看来886这个数字,我的电脑也很喜欢啊!哈哈
4.4 调试碰到问题及解决办法
Q1:四则运算中的除法运算,除数为零?
A1:用if判断语句进行排除。
Q2:在不同难度下的代码中出现了太多重复。
A2:使用函数进行覆盖,避免多次重复,从刚开始的四百多行代码删减到了两百多行。
Q3:在随机数的选择上,无法正常过编译?
A3:这个就尴尬了,在计算时间上定义了一个计算时间差的变量名为time,但是还有一个随时间变化而变化的随机数srand(time(NULL)),这就使得编译始终过不了,后来在同学(大佬)的指点下改变了变量名终得成功编译,这让我深刻的认识到定义名称时一定要注意细节,尽可能地使用驼峰命名法。
4.5 大作业总结
这个代码我写了一星期多,刚开始不是很熟练地使用函数来覆盖重复代码,后来在同学的帮助下慢慢的把重复代码都给简化了!
刚开始的时候,**随机数不会用**,+-*/的选择上就出现了问题,后来看了一下上次课堂派的题目,找到了灵感,一点一点地摸索出来了。
回想刚开始的四五百行代码,自己都看着累,以后写代码一定要先理清思路,找到重复点,调用适当函数进行简化代码,使代码看起来跟简洁!