C语言I博客作业09
这个作业要求在哪里|C语言I博客作业09 |
---|:--😐--😐
我在这个课程的目标是| 循环结构 4.3熟悉break、continue的使用 4.4 熟悉使用循环的嵌套解决问题 |
这个作业在那个具体方面帮助我实现目标|仔细阅读C语言教材 认真完成PTA作业 上网学习相关视频|
参考文献|C语言程序设计 break语句 中国大学MOOC |
1.PTA实验作业
1.1 打印九九口诀表
本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。
1.1.1数据处理
数据表达:只输入一个整数N,
数据处理:运用switch结构直接按照例子输出,简单直接。
include<stdio.h>
int main(void)
{
定义一个整形变量N;
scanf("%d", &N);
switch(N)
{
case N:printf("输出相应的数字直接输出乘法口诀表\n");break;
}return 0;
}
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 结果 | 说明 |
---|---|---|
2 | 1*1=1 | |
12=2 22=4 | ||
13=3 23=6 3*3=9 | 输出11到33的乘法表 | |
1 | 1*1=1 | 输出1*1的乘法表 |
1.1.4 PTA提交列表及说明
格式错误:没有满足右侧输出数字占四个格子的条件,然后决定先空四个格在设一个分号,
1.2 跟奥巴马一起画方块
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
1.2.1 数据处理
数据表达:设置L, w, i三个整型变量,一个字符型变量c。
数据处理:用两个for循环输出每个字符。
伪代码
include<stdio.h>
int main()
{
定义 L, w, i三个整形变量;
定义字符型变量 c;
scanf(输入变量L(每行的字母数),输入想要输出的字母);
for(w=0;w<(L+1)/2;w累加)
{
for(i=1;i<=L;i累加)
printf("%c",c);
printf("\n");
}
return 0;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
10 a | ![]() |
输出五行十列a |
1.2.4 PTA提交列表及说明
部分正确:因为列数不正确。例如应该输出五行只输出了四行。发现for循环中的列数i一开始应该为0.
答案错误:行数与列数换错了位置。更改了两个for循环的位置。
2.代码互评(5分)
(彭杰同学的代码)
(梁某人的代码)
这算我与其他同学风格相差最大的一个代码。
我的代码挺简单的,容易理解,没有太多的流程,一开始是受到做第二道选择题的影响,就有了直接输出乘法表的想法。我觉得我的想法是好的,但是可能我偏离了老师的初衷。
但老师说程序员就是要写出快速简单的代码嘛。我还是听老师话的好孩子,哈哈哈。
彭杰同学的代码比较秉承这次做的理念,通过多个for循环的输出计算来输出乘法表。
无论是输出乘法口诀代表,还是找完数其实都运用了这样的思想,利用循环的嵌套结构,来对应题目中的多个条件。
例如说一行代码对应一个条件,而在这个条件下有按照新的顺序输出新的代码。
这两份代码之间差距并不大,只是行数与列数的位置for循环位置交换了顺序。除了定义不同其他地方并没有太大的不一样。
之后我还是去CSDN找一些其他代码研究一下。
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周9.16~9.22 | 2小时 | 行 | 在屏幕上显示Hello World! | 暂无 |
第五周9.23~9.29 | 2小时 | 100行 | 求华氏温度对应的摄氏温度 | 暂无 |
第六周9.30~10.6 | 3小时 | 400行 | 如何用 MinGW-w64 来编译C程序 | 暂无 |
第七周10.7~10.11 | 8小时 | 500行 | 运用if语句完成各种数学程序 | 对于scanf的用法不了解 |
第八周10.18~10.18 | 6小时 | 800行 | 掌握for语句,同时在了解了do while | 对程序的运算次数的运营有一些困难 |
第九周10.19~10.26 | 9小时 | 1200行 | 学习函数有关的结构,开始完成通过PTA完成书本上的作业 | 上课前没预习,刚开始有点懵 |
第十周10.27~11.2 | 16小时 | 1880行 | 熟悉多分支结构、字符型数据类型和逻辑运算符。 | |
第十一周11.3~11.8 | 35小时 | 2506行 | 熟悉多分支结构switch语句的使用。 | 有关字符型知识没去及时学习 |
第十二周11.8~11.14 | 52小时 | 3320行 | 熟熟悉使用while和do-while结构解决问题,学习各种循环结构的镶嵌结构处理。 | |
第十三周11.14~11.22 | 62小时 | 3650行 | 熟悉多分支结构、字符型数据类型和逻辑运算符。 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
(1)这次所有的PTA作业好像用for循环做会更简单。思路会更明确。
(2)break语句的作用比较容易出错,在课堂上我觉得因为它使流程可能有两个方向,有点不可控,它很符合这个名称的特性——破坏
(3)continue语句只是单纯的略过本次循环的后续语句,
(4)其实无论是for循环、while循环或还是都do-while循环其实都可以满足我们的编程要求。它们在运用时不仅仅是像书上一样死板。它们同样可以完成对方的一些功能。
我们的编程至今为止都很简单,不仅仅是思路上、内容上还有在程序编写的形式上都很简单。当我们看程序员们的代码时,有很一部分讲过,但使用方法不同,例如结构都是我们上课for循环都可以写成其他的格式 等等诸如此类的操作。这只是很简单的一类,但读起来很难,顺序排布都比我们不同,这也可能是老师总是要求我们一开始编程必须规范写好代码的一个原因吧。
我觉得学习循环的镶嵌结构其实是我们开始的程序开始走向复杂的阶段,我们的代码也开始有逐渐走向功能增加,思路逐渐复杂的大趋势。
(5)吴佳柳总是催我帮他评论,我觉得他写的挺好的,已经不需要我评论了。我不喜欢他博客下那些评论,更不愿意去这样去吹嘘,捧高别人。有那时间和想法不如去好好做书上的PTA作业。保持学习的态度去学习别人的博客就好了,评论也还是只用于指出同学的不足就好了,这次杨宇的博客写得很快,评论下也和吴佳柳一样给出很高的评价(夸她写的快诸如此类的),但她的伪代码写的很糟糕,即使我的伪代码写的不好。可单纯的//在代码一侧注释代码的基本流程很显然是不正确的,这我还是能看出来的。那些评论是对别人不负责任的态度,我很生气。最后评论指出问题时对她的语气也不够委婉,很直接。
(反正她最近两个月又没看的我的博客,随便讲咯)
(6)理解别人的代码可以用Dev C++中的调试功能,我觉得这样会更好理解其他同学的代码流程,本来选择题第二题我是想手写的,觉得麻烦。突然想起来上课时老师编程就是为我们服务的,然后我就立即打开Dev C++,秒解题目,哈哈哈。
(7)这次编写我一开始没有用for循环,而是用另外两种,所以开始不断的修改,就运用了镶嵌结构,来弥补漏掉的条件。算是一种思维上小的突破。