C语言I博客作业11
||
--|:--:
这个作业属于那个课程|C语言程序设计II
这个作业要求在哪里|作业
我在这个课程的目标是|了解并在一定程度上掌握新的知识
这个作业在那个具体方面帮助我实现目标|我学习到了函数有关的知识
参考文献|C语言程序设计(第3版),百度
1.PTA实验作业
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是用户输入的,i是确定循环所用;n1, n2, i, cnt都是整形变量。
自定义函数:定义了i, b, c, e, flag,a[10];i是确定循环所用,b是某数开平方的值,c是数的某个位数,e是判断是否有数字相同,flag是根据题目意思直接赋值,a[10]是存放数的位数;i, b, c, e, flag,a[10]都是整形变量
数据处理:
主函数:
定义n1, n2, i, cnt;n1和n2确定输入范围,i用于for循环,cnt用于存放类完全平方数的数量
输入n1,n2
for ( 判断循环的次数并将n1,n2中的每个值赋给i ) {
if ( 判断i是否类完全平方数 )
cnt++;
}
输出cnt的数量
return 0;
}
自定义函数:
定义i, b, c, e, flag,其中i用于判断循环次数,b是为了判断该数是否为某个整数的平方,c是为了判断数中是否至少有两位数字相同,e是判断是否有数字相同,flag是为了方便跳出循环和返回数字
c = N;
b = (int)sqrt(N);
if N是某位整数的平方
{
定义十个数组,并赋第一个数组为0,
while 判断循环次数
{
将c的余数赋给e
for (i = 0; i < 10; i++)
{
if 数字相等 then a[i]++;
if 至少有两个数字相等{flag = 1;break;}
}
if flag是否为1 break;
逐渐消减数字的位数
}
}
返回flag的值
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
200 300 | cnt = 1 | 200 300之间有1个类完全平方数 |
200 400 | cnt = 2 | 200 400之间有2个类完全平方数 |
200 500 | cnt = 4 | 200 500之间有4个类完全平方数 |
1.1.4 PTA提交列表及说明
我在vs上运行无误后复制粘贴
1.2 统计各位数字之和是5的数
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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;a,b分别代表了数的范围;a, b都是整形变量
自定义函数:定义了s,t,a,b,count,sum;s是各位数字之和,t是用于存放数的位数,a,b用于接收实数的传递,count是满足条件的整数个数,sum是这些整数的和;s,t,count,sum是整形变量,a,b是参数
数据处理:
主函数:
定义输入范围
输入范围
if (判断给定正整数的各位数字之和是否等于5) 输出数字
if (判断给定正整数的各位数字之和是否等于5) 输出数字
统计给定区间内有多少个满足要求的整数
return 0;
}
自定义函数:
定义变量s,t,s用于存放数的各位数字之和,t用于存放数的位数
while 位数不为0 {
逐渐把数的位数给t
累加数的位数
}
if 数的位数是5
返回1
else
返回0
}
定义了a,b,count,sum,其中a,b用于接收实数的传递,count是满足条件的整数个数,sum是这些整数的和
for 确定循环次数 {
if (判断给定正整数的各位数字之和是否等于5) {
count累加
sum累加
}
}
输出count, sum
}
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
134 834 | count = 11, sum = 3250 | 134~834之间有11个满足条件的整数个数,这些整数的和为3250 |
34 734 | count = 17, sum = 3811 | 34~734之间有17个满足条件的整数个数,这些整数的和为3811 |
82 882 | count = 15, sum = 3720 | 82~882之间有15个满足条件的整数个数,这些整数的和为3720 |
1.2.4 PTA提交列表及说明
格式错误:我在输出的时候忘记在sum前面加个空格;改正:在sum前面加个空格然后运行正确。
2.代码互评
同学代码截图:
同学代码截图:
自己代码截图:
1.第一个同学:该同学的代码中n是两个根号下N相乘,这样稍微简化了一下代码,其他的代码行大致相同;
2.第二位同学:该同学的代码和我的代码思路大致相同,但他的代码比较简单,比如定义数组那部分,他没有赋值,直接在while循环里面用,这样比较方便;
3.总体来说:我们能用最简单的代码解决问题是最好的,自己先把自己的代码写出来,然后再回顾一下思路,把该改进的地方进行改进。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周 | 4h | 9 | makedown语法 | 对于C语言知识不太了解 |
第五周 | 11h | 121 | 输入和输出 | 一些基本的格式 |
第六周 | 16h | 187 | ig-else语句 | 对于一些格式不是不懂 |
第七周 | 17h | 342 | markdown语法和if-else语句 | 对于变量还是不能很好的掌握 |
第八周 | 17h | 121 | 定义两个变量,对for循环有更进一步的了解 | 对于基本知识还是不够扎实 |
第九周 | 20h | 178 | while循环,定义和调用函数 | 对于定义和调用函数还是不怎么了解 |
第十周 | 18h | 143 | for循环和if-else语句之间嵌套 | 读完题目后大脑里面没有相应的代码 |
第十一周 | 17h | 193 | switch可以处理多分支问题 | 对于编程题不能很快的写出代码 |
第十二周 | 15h | 156 | 新学了do-while循环,了解了for,while,do-while循环之间的区别,并对在相应环境用最合适的循环有了初步认识 | 题目做的比较慢,一些基本知识还是不够扎实 |
第十三周 | 16h | 183 | 学到了嵌套循环和break,continue语句 | 不能很好的把所学的东西交叉运用 |
第十四周 | 19h | 213 | 对以前所学的东西进行了一定程度上的复习 | 对以前所学的东西不能灵活应用 |
第十五周 | 18h | 203 | 全局变量,局部变量 | 对新学的函数部分不太熟悉 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第四周 | 323 | 76 |
第五周 | 783 | 154 |
第六周 | 1542 | 204 |
第七周 | 2131 | 293 |
第八周 | 2831 | 387 |
第九周 | 4017 | 429 |
第十周 | 5066 | 463 |
第十一周 | 6145 | 573 |
第十二周 | 7260 | 683 |
第十三周 | 8434 | 813 |
第十四周 | 9603 | 932 |
第十五周 | 10932 | 1093 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
在这次作业中我的积极性不是很高,可能是不太熟悉题型的原因,也有可能是我在前面的放假时间里多学了PR,好不任意学会了一点的PR,然后又接着写PTA,可能是不太适应,也有可能是最近的一些作业比较多,然后不太适应,我觉得这可能又是一个机会,暗示着我要把这些东西融合起来学习,以后的学习可能都是这样,我得适应这样的环境,我得改进自己的一些内部因素。努力吧~追梦少年。