C语言I博客作业10

这个作业属于哪个课程 C语言程序设计I
这个作业要求在哪里 C语言I-2019秋作业10
我在这个课程的目标是 熟练使用程序语言并且能够写一个小游戏的程序
这个作业在那个具体方面帮助我实现目标 能够根据实际情况,选择合适的算法、合理的循环结构,熟练的编写程序。
参考文献 百度百科

一、PTA实验作业

1、

题目 编程打印空心字符菱形

本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。所谓“空心菱形”是指:每行由两端为字母、中间为空格的字符串构成,每行的字符串中心对齐;上半部分相邻两行字符串长度差2,且字母从给定的起始字母逐一递增;下半部分与上半部分对称。

输入格式:

输入在一行中给出起始字母(范围为英文大写字母A-G)和菱形的高度(为不超过10的奇数)。

输出格式:

输出空心字符菱形。

输入样例:

B  5

输出样例:

  B
 C C
D   D
 C C
  B

数据处理

数据表达: 获取所需输出菱形的行数。
数据处理: 使用了for循环以及绝对值函数:abs()
伪代码:

  • 使用for循环,实现循环变量i在数值上的对称
  • 利用i的周期变换(先递减,后递增),显式的输出空格
  • 并利用char类型可使用ASCII改变字符的特点,让输入的character加上周期变换的改变型i值——'length / 2 - abs(i)',改变字符的值
  • 使用if语句判断,在菱形的首位不进行运算,再其他的位置继续执行操作
  • 输出形似1 3 5 7 9规律的空格,可用通项公式2n-1实现
  • 继续输出字符,可沿用之前的办法

代码截图

造测试数据

输入数据 输出数据 说明
B 5 如图所示

PTA提交列表及说明


在其他的编译软件上试过许多次了,然后运行成功后在Pta上面提交,一次就过了。
出现的错误:
由于大量的利用循环变量i的周期性特点,故而在数值,ASCII值的计算,空格的数量上出现了一些问题。但是都无伤大雅,经过调试即可改正。

2、

题目 输出三角形字符阵列

本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。

输入格式:

输入在一行中给出一个正整数n(1≤n<7)。

输出格式:

输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。

输入样例:

4

输出样例:

A B C D 
E F G 
H I 
J 

数据处理

数据表达: 直角三角形的简单输出
数据处理: 利用ASCII值的加减,改变输出的字符
伪代码:

  • 使用双for循环,达到直角三角形的输出格式
  • 默认输出的第一个字符为A
  • 定义一个ASCII值的加和变量,每输出一个字符,加和变量+1,以此来实现下次输出字符的改变

代码截图

造测试数据

输入数据 输出数据 说明
4 如图所示

PTA提交列表及说明

出现的错误:部分正确

因为没有注意到自己大括号的范围,所以出现了上图所示的错误。经过仔细检查之后,更正错误再提交,答案正确。

二、代码互评

同学代码

我的代码

  • 使用了大量本可以抛弃的变量,如一下代码:
i1 = i;
while (i1)
{
	i1 /= 10;
	a++;
}
……
a = 0;

完全没必要每次清零重新判断位数,只需在递增之后a*=10操作即可,并且ab的所处理的对象是一致的,这也是前文"使用了大量本可以抛弃的变量"的体现

  • 另外也可以不使用函数返回i * j的值,这实在是没有必要,函数是用来解决重复复杂操作,使主函数简介的工具。在如此前提下,简洁的代码更为出色
  • 最后还有命名方面的问题,作为一名已经学*了将*两个月的程序员,应该有合适的变量名,之前听大佬说过:“优秀的命名规范也是程序员能力的体现”。我深以为然,也慢慢在学*,具体可以参考《代码整洁之道》

3.学*总结

3.1学*进度条

周/日期 周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第3周/10月6~16 3天 181行 if-else语句,递归,分段函数的计算 对这些还不是很熟练,对这些符号的使用跟空格的使用不是很清楚
第4周/10月10~17 2天 181行 for循环语句与逻辑符 循环语句使用不够熟练,数学循环问题也有很多不明白的事情,不知道先后
第5周/10月18~24 10h 148行 基本程序语言与生成乘方表与阶乘表 基本程序语言了解的都差不多了,有些不是特别熟练还是需要加强练*的,生成乘方表跟阶乘表这方面的内容还有很多不懂的,觉得完成作业很费力气,要查阅各种资料,可能跟我数学理解能力不强也有关系吧。
第6周/10月25~31 22h 371行 多分支结构、字符型数据类型和逻辑运算符。顺便研究了几个心形的代码,觉得挺有趣。 就是有时候总是会丢三落四,然后也比较迷惑一些运算符使用方法,分之这一块还是不够熟练。
第7周/11月1~7 25h 211行 熟悉多分支结构switch语句的使用、字符型数据类型和逻辑运算符。 迷惑的真的太多太多了,但是百度大法真不错,虽然没有白嫖别人的答案解释香,但是还是很有用,一学就让我停不下来的那种。对数学研究的还是不够好,所以做很多题目转不过弯来,要努力克服。
第8周/11月8~14 22h 241行 熟悉使用while和do-while结构解决问题。 上课听的不太明白,课后也有查找资料,但是还是有很多不懂的,然后最*在做学*总结,想把自己不懂的都整理出来然后弄懂。
第9周/11月15~21 26h 500行 熟悉break、continue的使用,熟悉使用循环的嵌套解决问题 想知道为什么会出现运行时错误
第10周/11月22~28 33h 533行 能够根据实际情况,选择合适的算法、合理的循环结构,熟练的编写程序。 感谢每一个帮我解答问题的人,也很感谢听我抱怨的人,如果没有你们我估计都不能坚持这么久。

3.2累计代码行和博客字数

3.3学*内容总结和感悟

3.3.1 学*内容总结



3.3.2 学*体会

1,从最开始做题无从下手到现在能误打误撞写对几个题目了,这个过程的确是挺难的但是也真的是快乐的。
2,希望自己以后多几分耐心吧,不要再毛毛躁躁的了,细心一点有耐心一点。有疑问的时候虚心请教,比如问朋友问老师问同学。
3,感觉自己的自学能力还是太弱了,然后对许多知识点的掌握也不够深,感觉自己菜炸了。
4,突然发现自己身边挺多人对自己挺好的,会耐心回答我的疑问,会认真评论我的作业,希望在未来的道路上他们能够一直都在,然后一起进步。也希望自己不要辜负这么多人的期望,加油。

posted @ 2019-11-27 12:57  orange_toffee  阅读(336)  评论(4编辑  收藏  举报