C语言I作业11
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | 我的作业 |
我在这个课程的目标是 | 学习自定义函数,与全局变量 |
这个作业在那个具体方面帮助我实现目标 | 学会了把问题封装黑盒再解决。 |
参考文献 | 百度百科 |
1.PTA实验作业(20分/题)
1.1 题目名1
本题要求实现一个函数,判断任一给定整数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 cnt;
输入n1 n2;
初始化cnt;
for ( i=n1; i<=n2; i++ ) {
if ( 判断i是否是此类完全平方数 )
计算器cnt增加1;
}
输出范围里此类完全平方数个数;
return 0;
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
200 600 | cnt = 4 | 范围为200 到 600 |
666 888 | cnt = 1 | 范围为666 到 888 |
999 1500 | cnt = 3 | 范围为999 到 1500 |
1.1.4 PTA提交列表及说明
提交列表说明:
- 答案错误:没有判断该是否有两个以上相同数字。解决:利用循环和数组判断该数子各种数字有几个。
1.2 题目2
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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 数据处理
数据表达:定义整数型自定义函数is 空型自定义函数count_sum。
数据处理:{
定义整型变量a b;
输入a b的值;
if (判断输入数的各位数字之和是否等于5) 输出a值;
if (判断输入数的各位数字之和是否等于5) 输出b值;
判断区间[a, b]内有多少个满足上述要求的整数,并计算这些整数的和,并输出。
return 0;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
200 300 | count = 4, sum = 866 | 范围为200 到 300 |
400 888 | count = 3, sum = 1311 | 范围为400 到 888 |
666 999 | count = 0, sum = 0 | 范围为666 到 999 |
1.2.4 PTA提交列表及说明
提交列表说明:
- 编译错误:因为结尾少了一个对应令牌。解决:在结尾增加‘}’。
2.代码互评(5分)
同学代码截图
自己代码截图
不同点:
- 同学利用两个数组来判断是否有相同数字,而我则用判断1-9有多少个的方法判断。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周 | 5h | 30 | ||
第五周 | 7h | 50 | ||
第六周 | 10h | 63 | ||
第七周 | 9h | 44 | 学习了if条件语句。 | |
第八周 | 9h | 56 | 学习了for循环,并了解了css。 | |
第九周 | 8h | 153 | 学习了自定义函数。 | 对函数返回值的路径还有疑惑。 |
第十周 | 8h | 142 | 学习了嵌套结构。增加了逻辑语句认识。 | 对字符型的使用不熟练。 |
第十一周 | 9h | 287 | 学习了switch结构,了解了数组 | 对数组的虚拟空间申请不怎么会 |
第十二周 | 15h | 324 | 学习lwhlie do whlie循环 | 对whlie循环条件不清楚 |
第十三周 | 13h | 358 | 学会了循环嵌套 | 对嵌套流程不太清楚 |
第十四周 | 12h | 342 | 学习了动态数组,命名域,和vector容器 | 对命名域不太懂,vector用法只了解一些。 |
第十五周 | 14h | 215 | 学习了自定义函数。 | 对变量的范围不太清楚。 |
3.2 累积代码行和博客字数(5分)
时间 | 博客字数 | 代码行数 |
---|---|---|
第四周 | 347 | 2 |
第五周 | 799 | 32 |
第六周 | 1288 | 162 |
第七周 | 1884 | 322 |
第八周 | 2941 | 372 |
第九周 | 4752 | 425 |
第十周 | 5279 | 567 |
第十一周 | 6113 | 845 |
第十二周 | 7452 | 882 |
第十三周 | 8563 | 1240 |
第十四周 | 9452 | 1582 |
第十五周 | 10253 | 1797 |
![]() |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
- 这次学习我们学会了自定义函数的使用,但是这次作业难度远远超过了这次的学的知识,让人有点颓废,但是等我浏览一会发现其他同学也没怎么写出来,虽然,这样但是有时间还是要研究一下题目。总之,没有过不去的坎,只有足够坚持。