这个作业属于那个课程 |
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 实验代码截图

1.1.3 造数据测试
1.1.4 PTA提交列表及其说明

- 编译错误:第五行的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),输出所有不超过2n−1的梅森数。
输入格式:
输入在一行中给出正整数n(n<20)。
输出格式:
按从小到大的顺序输出所有不超过2n−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 实验代码截图

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.代码互评

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

相同点:都用了循环语句
不同点:设置的变量不同,我使用的的是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 累计代码行和博客字数

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

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