C语言I博客作业11
问题|答案
-|:-😐-:
这个作业属于哪个课程|c语言程序设计I
这个作业的要求在哪里|https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10129
我在这个课程的目标是|学好怎样精确地打代码,快速准确的完成PTA,在博客园上将自己的错误总结与归纳
这个作业在具体哪个方面帮助我实现目标|对自己打的代码进行纠错与记录,对别人的代码进行挑错与学习
参考文献|Brian W.Kernighan, Dennis M.Ritchi
作业格式
1.PTA实验作业
1.1 6-1 统计某类完全平方数
* 题目内容描述:本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等
1.1.1 数据处理
* 1.数据表达:
int IsTheNumber ( const int N )
{
int ← sqrt(N);
int n ← N;
int a[10] ← {}; //变量r,n,a,
if(r*r = N){ //筛选是否为完全平方数
int d;
while(n){
d ← n%10;
a[d]++;
if(a[d]←2){ //设a[d]==2定义
return 1;
break;
}
n/←10;
}
}
return 0;
}
* 2.数据处理:用int整型n1,n2的变量
1.1.2 实验代码截图
1.1.3造测试数据
输入数据|输出数据|说明
-|:-😐:-😐-:
121 440|cnt=4|
169 225|cnt=1|
1.1.4提交列表及说明
* 编译错误: int r=sqrt(N); int n=N; int a[10]={};一开始将这三个用int定义的变量合并为一个了,结果发现是编译错误,放在devec++上运行,发现是好像说的是不能这样放,所以就把他们分开了,重新弄了三个用int定义的。
1.2 6-2 统计各位数字之和是5的数
* 题目内容描述:本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
1.2.1 数据处理
* 1.数据表达:
int is( int number )
{
int sum ← 0,n;
while(number≠0) //while的语句
{
n ← number%10; //定义n,赋值number%10
sum ← sum+n;
number ← number/10;
}
if(sum==5) //用if语句,赋sum的值
{
return 1;
}
else
{
return 0;
}
}
void count_sum( int a, int b )
{
int i,count←0,sum←; //用int定义i,count,sum全为原始值0;
for(i←a;i<←b;i++)
{
if(is(i))
{
count++;
sum←sum+i;
}
}
printf("count ← %d, sum ← %d\n",count,sum); //printf输出
}
1.2.2实验代码截图
1.2.3造测试数据
输入数据|输出数据|说明
-|:-😐:-😐-:
104 999|104 is counted.count = 15, sum = 3720|这个的各位数之和为5
1.2.4提交列表及说明
* 编译错误:对于这一系列的编译错误,无非还是小细节上的错误,比如说这一系列的操作【void count_sum( int a, int b ){ i,count=0,sum=0; if(is(i)){ count++;】,其实很难想到去这样做,然而这些却又是这道题的关键,审题不清,导致变量以及变量摆放的位置有点差异,所以会导致编译错误。
二.代码互评
* 第一个是我的,第二个是同学的,这两个代码差别不大,区别在于定义的变量数不一样,前者比较定义得多,后者则比较简洁,所以,整体看下来后者的代码比较清晰易懂,他的思路也很清楚,这道题他的代码优势更突出。
3-1.学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周(9.19-9.27) | 7天 | 28行 | 学到了最简单的格式以及一些些语法,懂得一些编译的注意事项 | 不懂为什么要那样注意编译,错一个像欠一个空格这样的就都不对还有一些特定的符号的用处 |
第二周(9.25-10.4) | 5天 | 20行 | 学会了对于程序设计的一些东西,比如计算啊,就会自己开始编程,解决问题时就会简洁许多 | 不知道一些符号代表什么意思,就只是死记了下来 |
第三周(10.8-10.11) | 3天 | 102行 | 这周PTA作业较多,难度系数较大,因为都不是书上的,要自己开始琢磨,怎么去排列和提出问题,学会的东西也更多,知道自己编程和自己想办法去找错误,以及怎样思考这样的一些步骤 | 很多很多的#include代表什么意思,还增添了许多新符号,不知道是什么意思,只知道一些浅显的表层使用 |
第四周 | 8个小时 | 84行 | 学到了新的“for"循环语句,又多懂了一些格式的注意事项 | 有时候自己的循环体有点搞不清楚,到底该怎样去设 |
第五周 | 3天 | 89 | 学到了什么是调用函数(主调函数和被调函数)还有声明函数 | 有些函数类型还不是特别熟悉 |
第六周 | 3天 | 124 | 学了分支结构,更加熟练运用if和else语句 | 感觉还行,没有特别不会的地方 |
第七周 | 3天 | 91 | 学了switch语句,觉得更加好用,全是case比较简单实用 | switch语句掌握得还不是特别好,老是一下想不起来 |
第八周 | 3天 | 72 | 学了while语句和do while语句 | pta作业有点难,还有一些搞不清的地方,while和do while做题目的时候不知道用哪个 |
第九周 | 3天 | 60 | 本周学了foe循环的嵌套语句 | 本周作业没有完成得很好,还需要改进很多,对于for循环的使用得多多写写代码,才能越来越熟练。 |
第十周 | 3天 | 123 | 本周算是将上几周的内容概括了一遍 | pta题目很难,问了许多人,改了许多遍才完成,也算记忆深刻一些吧 |
第十一周 | 3天 | 51 | 本周题目难度较大,学了新的函数名的调用,实参和形参,还有全局变量和局部变量 | 分不清全局变量跟局部变量,然后参数形式也不太懂 |
累计代码行和博客字数
思维导图
3.3学习感悟
* 这周学习了关于形参和局部变量以及全局变量,我觉得有点难懂,函数名也挺多的,这次的pta作业超级难,我大部分题目都是猜加查资料,一个题目需要花费很长时间,所以印象自然会深一点点,但是还是有很多不懂得地方,我会多看看例题或问问其他人来解决。