代码改变世界

C语言Ⅰ博客作业10

2019-11-29 20:04  李茹萱  阅读(203)  评论(0编辑  收藏  举报

一、本周教学内容&目标

  • 第4章 循环结构 4.5 综合介绍循环结构的程序设计,涉及到多个典型算法。要求学生能够根据实际情况,选择合适的算法、合理的循环结构,熟练的编写程序。

二、本周作业头

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10097
我在这个课程的目标是 熟练地运用C语言进行编程
这个作业在那个具体方面帮助我实现目标 多写代码
参考文献 《PTA常见问题解答》伪代码的写法:https://www.cnblogs.com/huipengkankan/archive/2011/07/28/2120416.html,《c语言程序设计》

三、本周作业

1.PTA实验作业

1.1输出三角形字符阵列

本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
输入格式:
输入在一行中给出一个正整数n(1≤n<7)。
输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
输入样例:
4
输出样例:
A B C D 
E F G 
H I 
J 

1.1.1数据处理

数据表达:定义了整型变量n,i,并给i赋值为0,还定义了一个字符型变量cha,将其赋值为'A';
数据表达:
伪代码:
int n;      //输入的行数和每行的字符数
输入n   
char c←'A'; //定义一个字符型变量,使其从A开始。
int n←0;
if (n < 7){
while(n≠0)
{
    for(i←0 to n)
    {      
        printf("%c",ch);  
        ch←ch+1
    }
    printf("\n");
     n←n-1;    
}
else{
      printf("error!");
}
end

1.1.2实验代码截图

1.1.3造测试数据

输入 输出 说明
4 检验题目要求输出样例
2 在符合定义范围内输入

1.1.4PTA提交列表说明

编译错误:先在Devc++上运行过了,后面不小心把else前面的花括号删了导致编译错误,我后来根据PTA的错误提示信息改正过来了。

1.2梅森数

形如2的n次方−1的素数称为梅森数(Mersenne Number)。例如2的2次方−1=3、2的​3次方−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2的31次方−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。
本题要求编写程序,对任一正整数n(n<20),输出所有不超过2的​n次方−1的梅森数。
输入格式:
输入在一行中给出正整数n(n<20)。
输出格式:
按从小到大的顺序输出所有不超过2的n次方−1的梅森数,每行一个。如果完全没有,则输出“None”。
输入样例:
6
输出样例:
3
7
31

1.2.1数据处理

数据表达:定义了整型变量m,n,i,j,k,并给k赋值为0;
数据处理:
伪代码:
int m,n,i,j,k←0;
输入n;
for (i←2 to n ){
    m←pow(2,i)-1;
    for(j←2 to sqrt(m))
        if(m%j==0) break;
    if(j > sqrt(m)){
       printf("%d\n",m);
       k←k+1;
       }
     }
     if(k==0)
     printf("None!")
     end

1.2.2实验代码截图

1.2.3造测试数据

输入 输出 说明
5 2的5次方-1以内有三个梅森数
6 2的6次方-1以内有三个梅森数

1.2.4PTA提交列表及说明

答案错误:开始在devc++上运行的时候少了个判断素数的条件,导致后面运行出来的答案不正确,后面反复检查更改才将答案改正确。

四.代码互评

同学代码

我的代码

我和同学的代码所用的算法不一样,同学第二个for循环中是输出的ch+x,而我是直接输出的ch,并且在后面用了一个n=n-1的式子

同学代码

我的代码

我和同学代码的主要区别在于我们两个算素数的方法不一样,我是利用平方根的方法来计算素数,而同学是利用平方求余来计算素数的。

五.学习总结

|周/日期|这周所花时间|博客字数|代码行|学到的知识点|此前比较迷茫的问题|
|---|---|---|---|---|
|第一周|两天|619|32|学会简单地编写代码|什么时候该空格或者打分号|
|第二周|三天|828|18|学会计算摄氏温度与华氏温度的转化|不太会转化的表达式|
|第三周|三天|1128|90|学习scanf语句,if-else语句|不是很清楚输入符号标点所表示的意思|
|第四周|四天|1425|75|初步了解for循环语句|对其运用的条件还不是很清楚|
|第五周|三天|1408|83|对自定义函数的定义和调用有初步的认识和了解|不是很明白如何调用以及形参和实参的定义|
|第六周|四天|1523|144|对分支结构有进一步的了解,学习了运算符号的输入输出|字符型的输入输出|
|第七周|两天|1688|133|对switch语句有了一定的了解|switch语句使用的具体条件还不是很清楚|
|第八周|一天半|1438|84|do while循环结构和while循环结构|对循环结构的使用还不是很熟练|
|第九周|一天半|1729|82|break和continue语句的使用方法|对continue的使用条件和作用还不是很清楚|
|第十周|一天|1588|79|对for循环嵌套语句有了更进一步的了解|对嵌套的关系还不是很理解|

3.2累积代码行和博客字数

3.3学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会
  • 我感觉这周的作业难度大一些,虽然没有很多没学过的内容,但是在对学习内容的应用方面要求的更高了,我觉得这是对我们能力的一种挑战,虽然难做,并且我没有都写完,但是对能力的提升确实有很大帮助,希望我下次能更好的完成作业。