这个作业要求在哪里 | https://bbs.csdn.net/topics/609079527 |
我在这个课程的目标是 | 学会二维数组和字符串的相关知识,熟练运用二维数组和字符串的处理方式 |
这个作业在那个具体方面帮助我实现目标 | 帮助我查漏补缺,进一步巩固了上课所讲的二维数组和字符串的相关知识,填补了学习构造数据类型的空缺 |
参考文献 | c语言程序设计1,百度,csdn网站 |
1.PTA实验作业
1.1最矮的巨人
本题要求:操场上有N x N个“巨人”按N行N列的矩阵形式列队,请编程找出该方阵中所有“最矮的巨人”。
所谓“最矮的巨人”是指,该巨人在其所在行中,身高最高(没人比其更高);且在其所在列中,身高最矮(没人比其更矮)。
输入格式:
输入的第1行给出一个正整数n ( 1 ≤ n ≤ 6 ),表示方阵的行列数。随后n行,每行给出n个整数,代表巨人的身高,其间以空格作分隔。
输出格式:
如果找到至少一个“最矮巨人”,输出如下:
(第1个最矮巨人所在行下标,第1个最矮巨人所在列下标)
(第2个最矮巨人所在行下标,第2个最矮巨人所在列下标)
…
(第n个最矮巨人所在行下标,第n个最矮巨人所在列下标)
如果没有找到“最矮巨人”,输出如下:
NONE
注意:即便输出结果只有一行,也要输出换行符。行列下标均从0开始计数。
1.1.1数据处理
1.数据表达:定义整型变量n,i,j,k,a[n][n],max,min,flag,flag2,其中n为题目要求输入的行列数,a[n][n]为二维数组,max,min用来计算行中的最大值和列中的最小值,i,j用来标记max,min的下标,flag,flag2用于判断有没有最矮巨人。
2.数据处理:
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 |
---|---|
4(第一行)1 7 4 6(第二行)4 6 3 6(第三行)1 6 1 6(第四行)0 7 8 7(第五行) | (1,1)(第一行)(1,3)(第二行) (2,1)(第三行)(2,3)(第四行) |
7 | NONE |
1.1.4 PTA提交列表及说明
说明:1.之前没考虑到定义一个flag2来判断是否有最矮巨人,导致编译错误,后来经过查询资料,改正了过来,成功编译。
1.2sdut-C语言实验-字符编码
请将一串长度最长为5的纯字母文本译成一个密码,密码规律如下:用原来的字母后面的第4个字母代替原来的字母。如C用G代替(如果该字母没后面没有第4个字母可代替,则需从26字母表中的首字母开始代替,比如:W用A代替,Z用D代替),最后得到的文本即为密码。
输入格式:
输入一串文本,长度固定为5。
输出格式:
输出对应的密码。格式为:
password is 密码
1.2.1数据处理
1.数据表达:定义整型变量i,字符串变量c[5],其中i用于控制循环变量,c[5]用于储存字符串。
2.数据处理:
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 |
---|---|
China | password is Glmre |
VWxyZ | password is ZAbcD |
1.2.4 PTA提交列表及说明
说明:第一次编译忽略了’a’<=c[i]&&c[i]<=‘v’||‘A’<=c[i]&&c[i]<=‘V’的表达方法,写成了’a’<=c[i]‘v’||‘A’<=c[i]<=‘V’,后面经过检查发现了这个细节问题,真实感受到“细节决定成败”的含义,也证明了平时基础知识不牢固。
2.代码互评
同学的代码:
自己的代码:
代码分析:1.同学的代码更加严谨,运用了更多字符串相关知识,使用了string函数,计算a[5]字符串长度;
2.同学的代码定义了更多的变量,并给数组赋值了,我的代码中数组没有赋值,只定义了长度;
3.同学在运用if-else选择结构时,只对‘a’<=c[i]&&c[i]<=‘v’||‘A’<=c[i]&&c[i]<=‘V’的条件进行了讨论,未讨论’w’<=c[i]&&c[i]<=‘z’||‘W’<=c[i]&&c[i]<='Z’的情况,忽略了题目要求的纯字母密码,可能输入字母意外的内容时也会输入相应答案,不符合要求,代码使用又局限性。
同学的代码:
自己的代码:
代码分析:1.同学的代码直接在定义变量时给了二维数值相关的取值范围,开辟了足够的空间,而我的代码只是需要输入数据才能确定二维数组开辟空间的大小,且空间刚刚好满足要求,猜测稍有不慎可能会造成数据溢出;
2.同学的代码更加简洁,在第二个for循环时,直接先输出二维数组在判断最小值,而我的代码中输出二维数组是在for循环中先判断最小值再嵌套一个for循环来输出二维数组的内容;
3.在判断最小值时,同学是直接先赋值c=0,r=0;然后判断是否a[i][j]<a[c][r],满足条件再将i,j的值赋给c,r。而我的代码是先定义变量min=a[0][0],min_col=0,min_rom=0,再判断是否满足min>a[i][j],再给i,j的值赋给min_col,min_rom,显得更加繁琐。
3.学习总结
3.1 学习进度条![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/257578cb7e80b983113934dce70a1b76.png)
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
存在问题:
1.当前阶段最大的问题:需要用到多个循环结构、选择结构嵌套时,不能准确的做出流程图,也不能正确的解题,解题没有思路。
2.二维的字符数组不会输出,比如:pta编程题第三题,不清楚如何将长号和短号整合到同一个二维字符数组中。
3.对flag运用不清楚时机,不知道啥时候该用,啥时候不需要用,不能掌握使用技巧。
下步打算:
1.继续弄懂,消化该章节的知识,尤其是对二维数组和字符数组的知识。
2.对第一次提交错误的题,回头看,再次提交。
3.在学习新知识的同时,利用复习题复习前面的知识,做到温故而知新。