| 问题 | 答案 | 
|---|---|
| 这个作业属于那个课程 | C语言程序设计II | 
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10098 | 
| 我在这个课程的目标是 | 精通c语言,深入了解C语言的编程,学会自己编写程序 | 
| 这个作业在那个具体方面帮助我实现目标 | 对循环结构有了更深入了解,复习了字符常数的定义以及字符型函数的输出和输入 | 
| 参考文献 | C语言程序设计Ⅰ | 
1.PTA实验作业

1.1 同构数
找出1~1000之间的全部同构数。 输出格式: 在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符。
1.1.1数据处理
数据表达:定义了整形变量i,n,x,y;并把n初始化为1000;
数据处理:
int i,n=1000,x,y;//定义变量
for i ←1to1000;
do x←pow(i,2); y←x%10;
  if(i<10)
    then[if(y==i)then[输出i]]
    else if(i<100)
       then[x←pow(i,2);y←x%100;if(y==i) then[输出i]]
       end
1.1.2实验代码截图

1.1.3造测试数据
| 输入数据 | 输出数据 | 说明 | 
|---|---|---|
| 没有 | 1 5 6 25 76 376 625 | 是1~1000之间所有的同构数 | 
1.1.4PTA提交列表及说明

提交列表说明 * 1.格式错误:每个数输出占6列这里错了,开始时我把输出的,每个数前面都打了六个空格。格式错误。 * 2.格式错误:我在第二个和第三个输出前面打了四个空格。还是格式错误。最后在第三个输出前面打了三个空格。
1.2梅森数
本题要求编写程序,对任一正整数n(n<20),输出所有不超过pow(2,n)-1的梅森数。 输入格式: 输入在一行中给出正整数n(n<20)。 输出格式: 按从小到大的顺序输出所有不超过pow(2,n)-1的梅森数,每行一个。如果完全没有,则输出“None”。
1.2.1数据处理
数据表达:定义了整形变量count,flag,n,i,j,sum,x;并把flag和count分别赋值为1和0。 数据处理: int count=0,flag=1,n,i,j,sum,x;//定义变量 输入n; for i 1 to n; flag←1; sum←pow(2,i)-1; for j 2 to sum/2; x←sum%j; if(x==0) then[flag←0;跳出循环] end if(flag==1) then[输出sum;count++;] end if(count==0) then[输出None]
1.2.2实验代码截图

1.2.3造测试数据
| 输入数据 | 输出数据 | 说明 | 
|---|---|---|
| 6 | ![]()  | 
有3个梅森数 | 
| 8 | ![]()  | 
有4个梅森数 | 
| 14 | ![]()  | 
有5个梅森数 | 
1.2.4PTA提交列表及说明
提交列表说明

1.作业在编译器上运行过
2代码互评
同学代码截图


自己代码截图

我代码的思路和两个同学代码的思路在判断是否是梅森数上有点不同,我的是用flag==1来判断是否为梅森数。而同学的是当第二次的循环变量大于pow(2,i),之后的所有数都输出。我觉得我的代码比较容易让人理解,当别人第一次读同学的代码,可能有点理解不了。
# <font color=red>3.学习总结</font>
3.1学习进度条
| 周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 此前比较迷茫的问题 | 
|---|---|---|---|---|
| 第一周 | 1天 | 24行 | 学会了一点printf()语句,知道主函数 | \n的用法 | 
| 第二周 | 4天 | 23行 | 学会计算摄氏温度与华氏温度的转化 | =两边打空格 | 
| 第三周 | 2天 | 62行 | 学会一点scanf()语句,定义变量,if-else结构 | 很多地方不知道为什么要打空格 | 
| 第四周 | 1天 | 145行 | 学会了for()语句 | 目前没有 | 
| 第五周 | 1天 | 142行 | 对函数的定义和调用有初步的认识 | 在函数的定义中是否可以输入形参的值 | 
| 第六周 | 2天 | 132行 | 加深对if-else分支结构的认识,字符型变量和常量的定义以及字符型输入输出函数 | 字符型数据的输出和输入不懂 | 
| 第七周 | 1天 | 206行 | 学会switch语句,用switch语句处理多分支选择问题 | 在编译器上打代码时,编译器没有提示错误,但是答案错了。后来才知道case后面要打空格再打常数表达式 | 
| 第八周 | 1天 | 125行 | 学习了while( )循环语句和do{ }while( )循环结构 | 相对于for()循环和while( )循环,do{ }while()还是运用的不太熟练 | 
| 第九周 | 1天 | 1688行 | 学习了for( )语句的嵌套以及break语句和continue语句 | 运用不是很熟练,还需要多练 | 
| 第十周 | 1天 | 1669行 | 复习了字符常数的定义,字符型函数的输出和输入以及循环结构 | 对于字符的输出和输入有待提高 | 
3.2累积代码行和博客字数

3.3学习内容总结和感悟
3.3.1学习内容总结

3.3.2学习体会
* 1.这周复习了循环结构,我发现我把那个循环结构的循环条件弄混淆的, 还需要多看看前面学习的内容。 * 2.在做作业的过程中,也复习了字符常数的定义以及字符型函数的输出和输入,对于字符的一些知识还不是特别熟练,还要多做一些题目来练习。 * 3.总之,还是要多复习,不然以前学的知识都会忘记。


