C语言I博客作业10

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10100
我在这个课程的目标是 对循环的嵌套进一步的应用
这个作业在那个具体方面帮助我实现目标 pta作业和代码互评
参考文献 《C语言程序设计》,CSDN博客

1.PTA实验作业

1.1 7-3 梅森数

形如2^​n−1的素数称为梅森数(Mersenne Number)。例如2^2−1=3、2^3−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2^​31−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。本题要求编写程序,对任一正整数n(n<20),输出所有不超过2^n−1的梅森数。

1.1.1数据处理

  • 数据表达:用了整型的number,i, accumulation,p,s变量。
  • 数据处理:
    输出入2的幂number
    while p<number
    ​   do p←p+1
    ​   accumulation=pow(2,p)
    ​   for i 1 to (accumulation-1)/2 by 1 do
    ​     if (accumulation-1)%i=0
    ​       then break
       end
    ​   if i>(accumulation-1)/2
         then 输出accumulation-1并换行
    ​     s←s+1
    end
    if s=0
     ​  then 输出None

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
6 3 7 31 幂小于10
17 3 7 31 127 8191 131071 幂大于10
19 3 7 31 127 8191 131071 524287 幂大于10

1.1.4 PTA提交列表及说明

  • 1.部分错误:一个if语句的条件错误。调试中解决。
  • 2.部分错误:输出的变量搞错了。调试中解决。
  • 3.答案错误:在改动上面的过程中把while语句里循环的判断条件改错了。分析错误看代码时解决。
  • 4.答案错误:逻辑错误,break打成了continue。调试中观察到变量的值与心里想的语句走向矛盾问题。

1.2 7-8 输出三角形字符阵列

本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。

1.2.1数据处理

  • 数据表达:使用了整型变量n,j,i和字符变量c。
  • 数据处理:
    输入三角形的行数n
    c←'A'
    for i 1 to n by 1 do
    ​    for j i to n by 1 do
    ​       输出字符变量C
    ​       C的ASCII值加一
        ​   end
      ​  换行
    end

1.2.2实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
2 小于3
3 等于3
4 大于3

1.2.4 PTA提交列表及说明

  • 1.编译错误:输出换行的那个语句忘打分号了。pta提示解决。
  • 2.格式错误:输出字符时没有空格。在Dev里发现输出与题目的输出样例稍有不同。
  • 3.格式错误:把空格加大字符前面去了。看输出格式说明解决。

2.代码互评

同学代码截图

自己代码截图

  • 1.这位同学的代码的变量直接看不出含义,不容易理解。
  • 2.这位同学的内层循环次数有可能过多,应将for语句的j<a的a改成根号a或二分之一a。

3.学习总结

3.1 学习进度条

周/日期 这周所花时间 代码行 学到的知识点简介 目前比较迷惑的问题
7/10.9-7/10.11 7小时 276 if- else语句 PTA第三次作业的第5题用我自己的思路编代码结果不对
8/10.16-10.18 16小时 257 用for语句计算简单的序列和 浮点变量的单精度和双精度有什么区别
9/10.23-10.26 17小时 127 初步的了解了while语句和定义函数的使用 在那种情况下数组变量要定义在主函数外
6/27~6/31 17小时 270 多分枝结构和表达式,数组 数组到底可以存多少个数,超出10怎么表达每一个数组
11/11.6-11/11.8 17小时 176 switch语句可以分成很多种情况 swicth语句到底可能可以内嵌switch语句,我试过没成功过
12/11.13-12/11.15 17小时 270 使用while语句进行循环计算 伪代码到底怎么打,网上的文章看不懂
13/11.20-13/11.22 13小时 267 循环语句的嵌套使用 break语句只能结束循环吗?switch语句里也有循环,但不是循环语句
14/11.27-14/11.29 12小时 166 循环的了解进一步加深 调试时在return 0行设置断点有什么用

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

  • 1.在用循环的时候要特别注意循环的次数,不然很容易超时。
  • 2.在解决问题的过程中最好先将大问题分成三四个小问题(不要过多)一一解决,然后在结合在一块。
  • 3.在做题的过程中若很久都做不成不要在蛮做了,可以去看看C语言的书,借鉴一下别人的代码。
原文地址:https://www.cnblogs.com/hedongling/p/11953580.html