这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-3/homework/10126 |
我在这个课程的目标是 | 学会自己编写程序,熟练掌握循环的嵌套以及使用各种语句 |
这个作业在那个具体方面帮助我实现目标 | 使用C语言编程 |
参考文献 | C语言程序设计教科书 |
1.PTA实验作业
1.1 统计某类完全平方数 (20分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
裁判测试程序样例:
include <stdio.h>
include <math.h>
int IsTheNumber ( const int N );
int main()
{
int n1, n2, i, cnt;
scanf("%d %d", &n1, &n2);
cnt = 0;
for ( i=n1; i<=n2; i++ ) {
if ( IsTheNumber(i) )
cnt++;
}
printf("cnt = %d\n", cnt);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
105 500
输出样例:
cnt = 6
1.1.1 数据处理
数据表达:定义了整型变量n1,n2,i,N,r,d,cnt使用了整形数组a
数据处理:自定义函数Is TheNumber
定义整形变量r,N,D,数组a
判断r*rN
循环d=n%10
累加数组a[d]++
如果a[d]2则返回1,跳出
定义四个整型变量。n1和n2确定完全平方数的范围
输入n1,n2,赋值cnt=0
循环计算从n1到n2中的数累加
判断i是否满足条件
则cnt++
输出cnt的值
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
105 500 | cnt=6 | 满足条件的有六个 |
200 880 | cnt=5 | 满足条件的有五个 |
500 1000 | cut=2 | 满足条件的有俩个 |
1.1.4 PTA提交列表及说明
提交列表说明
1.这次在PTA上提交没有错误是由于我在C++上确保正确后才提交,但在C++上开始错了好几次,在使用数组的时候混淆了几次,后来询问室友解决问题
1.2 统计各位数字之和是5的数 (20分)
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
函数接口定义:
int is( int number );
void count_sum( int a, int b );
函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。
函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式
count = 满足条件的整数个数, sum = 这些整数的和
进行输出。题目保证0<a≤b≤10000。
裁判测试程序样例:
include <stdio.h>
int is( int number );
void count_sum( int a, int b );
int main()
{
int a, b;
scanf("%d %d", &a, &b);
if (is(a)) printf("%d is counted.\n", a);
if (is(b)) printf("%d is counted.\n", b);
count_sum(a, b);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
104 999
输出样例:
104 is counted.
count = 15, sum = 3720
1.2.1 数据处理
数据表达:定义了整形变量a,b,x,y,sum
数据处理:定义sum,a,b两个整型变量,
若满足is函数则相应的输出数据;
自定义int is( int number )函数;
定义x和y分别代表输入的数的每一位数字和每一位数字的和;
若该数不等于零
则循环将该数的每一位数字拿出且求和;
若是所求的和等于五
则返回1;
使用for循环输入[a,b]间的每一个数
如果输入的数满足is函数
则计数器+1;
且求满足is函数的数的和;
1.2.2 实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
104 999 | 104 is counted count = 15, sum = 3720 | 有十五个数符合,和为3720 |
104 333 | 104 is counted count = 12, sum = 2409 | 有十二个数符合,和为2409 |
1.2.4 PTA提交列表及说明
提交列表说明
1.编译错误:开始编译把所有的代码都写了进去,其中代码把变量名弄错了
同学代码1
同学代码2
我的代码
1.我们的代码都是用了循环的嵌套,都是用的for循环
2.同学代码2是使用的循环语句,我使用数组计算
3.我们代码总体上很相似,都是用相同的方法
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第十周 | 30h | 128 | if-else语句的嵌入 | 对于一些题目中的公式不知道该怎么写 |
第十一周 | 21h | 120 | switch语句 | 对switch的使用还不太会 |
第十二周 | 28h | 134 | while语句 | 对while循环的条件不是很清楚 |
第十三周 | 30h | 153 | continue语句 | 对循环的嵌套不是很熟练 |
第十四周 | 35h | 184 | 循环语句 | 对字符型不太懂 |
第十五周 | 38h | 194 | 函数 | 不懂怎么去自定义函数 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第十周 | 1856 | 512 |
第十一周 | 1978 | 634 |
第十二周 | 2135 | 721 |
第十三周 | 2234 | 785 |
第十四周 | 2436 | 832 |
第十五周 | 2567 | 964 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
1.学习C语言有俩个多月了,我也从以前的懵懂到现在会一点基础,我感觉进步了许多,在学习中也是慢慢的体会到了C语言的乐趣
2.在这周的学习中,我们主要学习了函数,以及复习以往的知识,其中我有很多地方不是很理解,但在以后会继续努力
3.在编写代码中逻辑思维显得越来越重要,以后必须加强逻辑思维的训练