C语言I博客作业10
问题|答案
-|:-😐-:
这个作业属于哪个课程|c语言程序设计I
这个作业的要求在哪里|https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10098
我在这个课程的目标是|学好怎样精确地打代码,快速准确的完成PTA,在博客园上将自己的错误总结与归纳
这个作业在具体哪个方面帮助我实现目标|对自己打的代码进行纠错与记录,对别人的代码进行挑错与学习
参考文献|Brian W.Kernighan, Dennis M.Ritchi
作业格式
1.PTA实验作业
1.1 7-3 梅森数
* 题目内容描述:形如2n−1的素数称为梅森数(Mersenne Number)。例如22−1=3、23−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明31−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。本题要求编写程序,对任一正整数n(n<20),输出所有不超过2n−1的梅森数。
1.1.1 数据处理
* 1.数据表达:用int定义了5个变量,整型对应数,for(i=2;i<=n;i++)
{
num=pow(2,i)-1,用于语句的利用,对于这个题目 if(num%j==0) break;
if(j>sqrt(num)),有这些逻辑语句答案才会有步骤地出来。
int num,n,i,j,f=0; //用int整型定义n,i,j,f四个变量
scanf("%d",&n); //输入对应数据
for(i←2;i<←n;i++) //for循环结构
{
num=pow(2,i)-1; //pow为根号
for(j←2;j<←sqrt(num);j++) //嵌套for循环
if(num%j==0) break; //if条件句
if(j>sqrt(num))
{
printf("%d\n",num); //输出变量
f++;
}
}
if(f==0)
printf("None"); //输出变量
* 2.数据处理:用整型int定义,for语句嵌套。
1.1.2 实验代码截图
1.1.3造测试数据
输入数据|输出数据|说明
-|:-😐:-😐-:
9||输出了小于29-1的梅森数
11||输出了小于211的梅森数
17||输出了小于2*17的梅森数
1.1.4提交列表及说明
* 由于在上机课时已经做了这个题目,所以在pta上做的时候就一下对了,对于这些个地方我还是有些印象,比如说for(j=2;j<=sqrt(num);j++)这个地方老是想不对,漏了个条件,所以错了很多次答案错误,后来参考了同学的就改正了过来就对了
1.2 7-4 同构数
* 题目内容描述:一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。
1.2.1 数据处理
* 1.数据表达:用int整型定义四个变量,for循环执行。
* 2.数据处理:
int i,n←1000,x,y; //用int整型定义了四个
for(i←1;i<←n;i++) //for循环语句
{
x←pow(i,2); //对x赋语句
y←x%10; //对y赋语句
if(i<10) //if条件语句
{
if(y==i)
{
printf(" %d",i); //输出变量
}
}
else if(i<100) //else语句
{
x=pow(i,2);
y=x%100
if(y==i)
{
printf(" %d",i); //输出变量
}
}
1.2.2实验代码截图
1.2.3造测试数据
输入数据|输出数据|说明
-|:-😐:-😐-:
7||这是7的同构数
1.2.4提交列表及说明
* 答案错误:printf(" %d",i);这句例语我把中间的空格给弄没了,出现了答案错误,还有if条件语句里面有一些变量定义得不好,逻辑不清。
二.代码互评
第一个是同学的,第二个是我的,这两个代码都十分简洁,不过使用的逻辑语句不一样,一个使用pow,一个使用for,都还可以。
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.3学习感悟
这周是第十周了,知识学得越来越多,需要掌握的东西也越来越多,我们这周开始增加了难度的pta,真的感觉有点困难,我觉得对于马上到来的期末考试,我需要细细的复习一下了,梳理知识点,整理题目,看看以前做过的pta作业,多多总结。