C语言|博客作业10

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业的要求在哪 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10097
我在这个课程的目标是 更加深入的了解C语言,打好基础
这个作业在哪个具体的方面帮助我实现目标 对代码加深了理解,学习了for循环嵌套语句
参考文献 《C语言程序设计》《百度》

1.PTA实验作业

1.1 输出三角形字符阵列

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

1.1.1 数据处理

数据处理:定义了i, n, j, count=0;,这些属于整型变量,并对count进行了赋值。
数据分析:
int i, n, j, count=0;  /*定义变量*/
char ch;               /*定义字符op*/
scanf("%d", &n);
for(i=n; i>=1; i--){   /  i,1→n  ,表示行的循环/
    for(j=1; j<=i; j++){       / j,1→i,表示列的循环/
        printf("%c ", 'A' +count);   /*输出,从A开始往后排列*/
        count++;
    }
    printf("\n");   /*换行输出*/
         

1.1.2 实验代码截图

C语言|博客作业10_第1张图片

1.1.3 造数据测试

输入数据 输出数据 说明
2 输入数据
3 输入数据
4 C语言|博客作业10_第2张图片 输入数据

1.1.4 PTA提交列表及其说明

C语言|博客作业10_第3张图片

  • 编译错误:第五行的char ch;中最后的分号没有打,还要低12行的 printf("\n");中的\打成了/ ,所以编译错误。
  • 格式错误:第九行的printf("%c ", 'A' +count);应题目要求,格式输出应有一空格,但在%c后没有打空格,所以格式错误。

1.2 梅森数

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

1.2.1 数据处理

* 数据处理: 定义了n, i, sum, j, f=0;,这些属于整型变量。并对count进行了赋值。
* 数据分析:
int n, i, sum, j, f=0;  /*定义变量,并进行赋值*/
scanf("%d", &n);
for(i=2; i<=n; i++){   / for i,n←1/
    sum=pow(2,i)-1;     /*计算出所有2的n次方减1的数*/
    for(j=2; j<=sum/2; j++){      /*for j,sum/2←2*/
       if(sum%j==0)      /*判断这个数是否为梅森数*/
       break;
    } 
    if(j>=sum/2){        /*是素数输出*/
       printf("%d\n", sum);    
       f++;
    }
}
if(f==0){       /*不是素数输出*/
printf("None");
}
return 0;

1.2.2 实验代码截图

C语言|博客作业10_第4张图片

1.2.3 造数据测试

输入数据 输出数据 说明
6 3 7 31 3个梅森数
9 3 7 31 127 4个梅森数
14 3 7 31 127 8191 5个梅森数

1.2.4 PTA提交列表及其说明

  • 编译错误:第九行if(f==0)中少了一个等号,所以错误。

2.代码互评

  • 题目内容:梅森数
  • 左:我的代码 右:同学代码

C语言|博客作业10_第5张图片

相同点:我们都用了for循环嵌套语句,和if语句,而且我们的for循环语句的结构内容相同,还用了相同的数学函数sum=pow(2,i)-1;。
不同点:我们设置的变量不同,她是用flag==1来判断这个数是否为梅森数,而我用sum%j是否还有余数来判断此是否为梅森数,因此她还多了一个if语句来判断这个数是否为梅森数。相比起来,我的更加简洁明了一些,也更加容易懂一些。

题目内容:输出三角形字符阵列
左:我的代码 右: 同学代码
C语言|博客作业10_第6张图片

相同点:都用了循环语句
不同点:设置的变量不同,我使用的的是for循环嵌套语句,用了'A' +count的形式来排列ABCD。而她是先使用了while循环语句,再是for循环语句,还多了一个判断。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 两天 32行 对代码有了简单的了解 对题目看不懂,理解不了代码的意思
第二周 三天 21行 开始理解代码符号的意义,懂得了输入输出函数 自己理解的还不足以完全的看懂一个代码
第三周 三天 89行 知道怎么使用if-else语句,理解了更多的符号 对很多代码的格式不是很理解
第四周 四天 69行 学会了for循环语句代码的编译 一些符号的含义
第五周 两天 89行 了解了fact函数,如何更间接的打代码 对fact函数不太了解
第六周 三天 152行 学了字符型变量和常量字符型输入和输出 不清楚逻辑运算
第七周 两天 183行 学习了switch语句 对循环语句有些无法分清
第八周 一天 84行 学习了while循环语句,和do-while循环语句 两语句还不能在实际中很好的运用
第九周 一天 99行 学习了for循环语句 对此次的内容不太了解
第十周 一天 74行 加深了对for循环嵌套语句的理解和使用 对while和continue语句不会使用

3.2 累计代码行和博客字数

C语言|博客作业10_第7张图片

3.3 学习内容总结和感想

3.3.1 学习内容总结

C语言|博客作业10_第8张图片

3.3.2 学习体会

 在这一周当中没有学习其他新的内容,主要是在对前面的内容进行复习和巩固,在这一次的PTA作业中,对for循环的嵌套语句加深了了解,不过对while语句和continue语句还是很不熟悉,在题目中,最重要的还是注意题目要求,注意格式的输入和输出,在平时要多练习,多去找一些不同类型的题目来做,才能更好的掌握知识点。

你可能感兴趣的:(C语言|博客作业10)