C语言I博客作业09
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11635 |
这个作业的目标 | <掌握自定义函数,更加深入了解函数的类型,声明,调用,定义及各种规定> |
学号 | <20208976> |
1.PTA实验作业(20分/题) | |
请再此处列出自己的排名图片, | |
1.1 题目1
6-1 统计某类完全平方数 (20分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
1.1.1 数据处理
数据表达:int n,m,digit;
m=N;
n = (int) sqrt(N);
数据处理:表达式:n*n==m
digit = m%10;
m/=10;
int i=0 ;i<=9;i++
digit==i
num[i]==2
流程控制:用数学函数sqrt和if语句判断是不是完全平方数。
运用数组,并将数组初始化int num[10]= {0};和运用for循环用来判断至少有两位数字相同。
1.1.2 实验代码截图
1.1.3 造测试数据
1.1.4 PTA提交列表及说明
运行超时:将题目至少有两位数字相同分解成至少有一位数字相同和没有数字相同,导致计算量太大。
编译错误:没有将N进行赋值给另一个变量,局部变量拎不清。
解决方案:1.换一种思路,正难则反。顺着题目意思走下去。
2.将变量N重新复制给另一个变量。
1.2 题目2
6-2 统计各位数字之和是5的数 (20分)
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
1.2.1 数据处理
数据表达:int digit,s=0;
int count=0,sum=0;
数据处理:表达式:number!=0
digit=number%10;
number/=10;
s+=digit;
s==5
a=a;a<=b;a++
sum+=a;
流程控制:用while来循环number是各位数字及累加和。
用if来判断各位数字之和为5来确定返回值。
用for来循环在区间[a b]的为真的数。
用if来判断为真的数确定累加和。
1.2.2 实验代码截图
1.2.3 造测试数据
1.2.4 PTA提交列表及说明
编译错误:将两个自定义函数联合一起使用。
多种错误:格式错误,用count_sum利用函数is没理解到精髓。
格式错误:空格少了或者多了。
解决方案:1.看书,发现自定义函数不能一起使用,将其分开使用。
2.查百度,将用if(is(a))运用在第二个自定义函数中,用来判断是否符合各位数字之和为5的条件。
3.注意空格与格式。
2.代码互评(5分)
同学代码截图1
同学代码截图2
自己代码截图1
1.第一位同学运用自定义函数,数组,将题目意思进行了化解,值得学习。
2.第二位同学运用switch,思维新颖,结构简洁,版面整齐。但微微显代码繁琐。
3.都拓宽了我的思路,学习到了新的点。
3.学习总结(15分)
3.1 学习进度条(5分)
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
1.对函数的功能,调用,声明,定义是怎么样的有了更一步的理解,不会稀里糊涂的。
2.要加强对自定义函数的运用和理解。
3.一定要有将题目进行逐步分析和分解的思维。
4.对局部变量和全局变量的区别,该怎么样用和注意点还不够清晰。需加强对这一方面的认知。
5.需多多复习,对已经学习的知识点和编程需根据需要来进行选择运用知识。
6.综合运用自己所学,做一些较大规模的题目。