C语言I博客作业10
问题 | 回答 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | C语言I博客作业10 |
我在这个课程的目标是 | 完全独立编写一个小游戏程序,并能正常运行。 |
这个作业在那个具体方面帮助我实现目标 | 对于循环结构的层层分析,例如for循环,while,do-while循环,以及它们的嵌套。 |
参考文献 | 《C语言程序设计》 《C Primer Plus》 |
1.PTA实验作业
1.1 输出三角形字符阵列
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
1.1.1数据处理
数据表达:用int定义整型变量n,i,j;用char定义字符型变量。
数据处理:算术表达式,条件表达式,关系表达式,赋值表达式。运用for循环及其它的嵌套。
int定义变量输入数n,循环次数i,j;
char定义变量x并赋值;
scanf输出变量n;
for(初始条件;i<n;i自增);
{
for(初始条件;j<n-i;j自增)
{
x关系表达式;
输出x;
}
输出条件换行;
}
return 0;
1.1.2实验代码截图
1.1.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
2 | A B C |
在题目要求范围内 |
0 | 不在要求范围 | |
7 | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ |
超出范围 |
1.1.4 PTA提交列表及说明
1.编译错误:对几个变量的定义不明确
2.答案错误:在内循环中循环条件应为j<n-i,而我误以为是j<i
3.答案错误:在输出中应注意各数之间应空格,所以应输出"%c "
4.格式错误:多打了一行空格
1.2 梅森数
形如2^n−1的素数称为梅森数(Mersenne Number)。例如22−1=3、23−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2^31−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。
本题要求编写程序,对任一正整数n(n<20),输出所有不超过2^n−1的梅森数。
1.2.1 数据处理
数据表达:用int定义整型变量a,b,n,i,j
数据处理:条件表达式,算术表达式,关系表达式,赋值表达式,运用for循环结构和if分支结构;
int定义变量输入数n,循环次数i,j,输出值a,判断条件b;
scanf输出n;
if(条件n1)
{
输出 None;
}
for(i初始状态;循环条件;i自增)
{
a的算术表达式;
for(j初始状态;循环条件;j自增)
{
if(条件)
{
b=1;
break 跳出当前循环;
}
}
if(b0)
{
输出a;
}
b=0;
}
return 0;
1.2.2 实验代码截图
1.2.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
8 | 3 7 31 127 |
大于零小于20 |
-1 | 小于零 | |
21 | 3 7 31 127 8191 131071 524287 |
大于20 |
1.2.4 PTA提交列表及说明
1.答案错误:没有给a赋值为零,系统自动赋值为1,导致答案错误;
2.代码互评
同学代码截图
自己代码截图
1.同学在他的代码中使用函数来解题,利用主函数和自定义函数来分出不同的情况。
2.相比于他们的,我个人认为我的代码更容易被他人读懂
3.他们的代码比我的规范一些,比如变量定义部分,输入,循环结构,输出等都比较明确的表达出来。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第三周10.9-10.12 | 两天 | 188 | 对代码数据的处理了解,比如类型结构等 | 什么时候用int,double声明变量,逻辑运算符的运用等 |
第四周10.16-10.18 | 一天半 | 190 | 如何用double型数据使用lf%,怎样在程序中用for语句实现循环,可指定循环次数 | 循环体中的关系表达式的正确运用 |
第五周10.23-10.26 | 两天 | 226 | 运算符的优先级顺序,自定义函数的编写,对数据参数的了解 | 具体如何在题目中定义函数,参数又应放在哪里才是正确位置 |
第六周10.30-11.2 | 三天 | 348 | 分支结构应用,逻辑运算符的使用 | 在使用if-else语句时{}的位置与格式,语句一多就搞不清楚了 |
第七周11.5-11.8 | 两天半 | 300 | switch语句作为分支结构应用 | 伪代码到底该如何编写,写的详细和正规代码没什么两样,写的粗略思路又不够清晰 |
第八周11.13-11.15 | 两天半 | 300 | 使用while和do-while结构解决问题 | 对于不同情况下for循环语句和while循环语句如何选择使答题更简便 |
第九周11.20-11.22 | 两天半 | 311 | 使用break语句和continue语句 | 在一起用,有时会混淆两个概念,还不太熟悉它们的用法。 |
第十周11.27-11.29 | 两天半 | 269 | 对各个循环结构的综合应用 | 对于其区别还不能完全熟悉掌握 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
- 学习了while,do-while,for三种循环结构的使用和它们之间的区别,以及break,continue的用法。
- 循环次数已知时,常用for;循环次数未知时,常用while或do-while。
- 几种循环变量的初始化的位置不同。
- while和for循环是当型循环,do-while是直到型循环。
- break语句只能用于循环语句和switch语句。