这个作业属于那个课程 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.在编写代码中逻辑思维显得越来越重要,以后必须加强逻辑思维的训练