C语言I博客作业10

这个作业属于哪个课程 C语言程序设计
这个作业要求在哪里 C语言I作业10:第十四周作业
我在这个课程的目标是 学会使用C语言
这个作业在哪个具体方面帮助我实现目标 很难的pta可以锻炼我的解题能力
参考文献 C语言程序设计(第三版);百度

1.PTA实验作业

1.1 编程打印空心字符菱形

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

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

输出格式:

输出空心字符菱形。

输入样例:

B 5

输出样例:

1.1.1数据处理

数据表达:定义了五个整型变量和一个字符型变量,其中i、j是控制循环变量,high是指菱形的高度,half是指一半菱形的高度。
数据结构:
结构式:一共用了六个for循环和两个if语句,其中分为两个for循环里分别嵌套两个for循环和一个if语句。

伪代码:

 开始 ;
   定义变量:控制循环变量i、j,菱形的高度high,半个菱形的高度half,字符型op;
   接收字符和菱形的高度;
   把(high+1)/2赋值→half;
   for循环{
   for循环输出空格;
   输出字符
   判断i==0
   yes→op++;
   for循环输出空格;
   输出字符;
   输出换行;
   }
   字符减2;
   for循环{
   循环输出空格;
   a++;
   输出字符;
   for循环输出空格;
   判断i==1;
   yes→输出换行;
   跳出;
   输出字符;
   }
   结束 ;

1.1.2实验代码截图


1.1.3 造测试数据

输入数据 输出数据 说明
B 5 高度为5从字母B开始的菱形
a 5 高度为5从字母a开始的菱形
Q 6 高度为6从字母Q开始的菱形

1.1.4 PTA提交列表及说明

提交列表说明:
在Devc++上反复运行检查更改,因此在pta上无错误。

1.2 输出三角形字符阵列

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

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

输出格式:

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

输入样例:

  4

输出样例:

  A B C D 
   E F G 
   H I 
    J 

1.2.1数据处理

数据表达:定义了三个整型变量和一个字符变量且给它赋初始值为'A';j、i代表控制循环变量;N代表输入的正整数。
数据结构:
结构式:在if语句内使用一个for循环语句的嵌套。

伪代码:

开始 ;
  定义变量;
  输入N;
  判断N的取值范围;
  for循环输出第一行{
  接着for循环输出下一行
  }
  输出空格;
  使N-1;
  结束 ;

1.2.2实验代码截图

1.2.3 造测试数据

输入数据 输出数据
4
3
2

1.2.4 PTA提交列表及说明

提交列表说明:
格式错误:输出的字符后面没有空格。

1.3 同构数

一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。
输入格式:

 一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。

输出格式:

1     5     6    25    76   376   625

1.3.1数据处理

数据表达:定义了两个整型变量,b代表一个数,a是控制循环变量同时是b的因子,若满足同构数的条件则使用printf函数输出。
数据结构:
结构式:使用了for循环和省略else的if语句的嵌套。

伪代码:

开始;
  定义变量;
  for循环(输入数);
  给b赋值→b=a*a;
  判断是否为同构数;
  输出六位;
  结束;

1.3.2实验代码截图

1.1.4 PTA提交列表及说明

提交列表说明:
①刚开始,没有搞清楚a和b的之间潜在的关系,导致for循环的三个表达式和循环体里的数据乱套。
②该题的输出结果不需要左对齐

2.代码互评

同学代码截图

自己代码截图

代码比较

从整体上看,该同学的代码和我的有很大的不同,首先他没有控制N的取值范围,只用了一个for循环,而我使用的是for循环的嵌套
从内容上看,我们的代码使用的不同方法,但目的都相同,但是我的比较简单清晰。

同学代码截图

自己代码截图

代码比较

从整体结构上看,我们之间的差异不大,但从细节上看,还是有很多的不同。充分体现了一个题目有很多种路径能走到终点。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 博客字数 学到的知识点简介 目前比较迷惑的问题
8周/10/14-20 5h 100行 918字 for循环结构 不能够熟练for语句
9周/10/20-27 7h 120行 1194字 自定义函数 对定义和调用函数知识点上还是很模糊
10周/10/28-3 8h 380行 1290字 char字符型 有些代码所用的格式
11周/11/4-10 8h 150行 1309字 switch语句 怎么寻找到解题的正确思路
12周/11/11-17 6h 160行 1100字 do-while语句和其他循环语句 怎么综合运用已学内容
13周/11/18-24 16h 260行 2453字 break、continue的用法以及它们之间的关系 使用很多个for循环和if语句时容易混乱
14周/11/25-01 8h 240行 1831字 用for循环解题的思路 不会用自定义函数

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

马上就要考试了,表示超级超级方,自己能够不靠百度不靠求助助教独立写出来的题很少很少很少很少。所以最近也是重点锻炼自己完全独立写出编程题的能力。至于选择填空题,也是需要大量练习,书上习题有很多。不知不觉,大一上学期马上收尾,目前已经接触到软件工程近三个月,可以说是从一无所知进阶到入门小白。曾经一度骂过自己怎么脑抽非要选择软件,也有过为自己迎难而上而感到自豪。开弓莫得回头箭,我不追求能把这门课学的多么厉害,但最起码不要辜负自己。目标的实现建立在我想成功的强烈愿望上。现在还有很多问题需要去解决,比如三个循环语句的灵活变通、switch语句和自定义函数的使用。还有一个问题,在调试的时候,断点一般应该选择在哪里呢?

原文地址:https://www.cnblogs.com/coolyingying/p/11939335.html