C语言博客作业04-数组
1.本章学习总结
1.1思维导图
1.2本章学习体会及代码量
1.2.1学习体会
学过数组后觉得 较之前的方法更好的存储数据,有些题对数组的存放上下限和标记问题还是有点不懂。多打多看多思考把,加油,💪
1.2.2代码累计
2.PTA总分
2.1三次题集分数截图
2.2我的总分
285分
3.PTA作业
3.1题目一
- 输入在2行中先后给出字符串A和B。两字符串的长度都不超过10^4并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
3.1.1算法分析
- 用strlen数组的长度来做,将先输入进去的字符数组定义为a[i]
- 再用flag 来标记,将重复的标记为flag=0
- 然后将后面的剩下 的用if(flag)来输出新的a[i]。
- 不过如果字符数组的长度 没有定义好就会出现这种情况。最长字符串要删除的在中间和两端,如果a[10000]的话最长字符串无删除。
3.1.2代码截图
3.1.3PTA提交列表及说明
后面的次数 都在验证错在哪,最后一次 才知道是最长字符串的问题,要定义成10010.
3.2PTA题目2
上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。
3.2.1算法分析
- 用一个二维数组a[10][10]来装输入的数组,再用一个数组b[100]来记录判断记录,再输入数组
- 接着判断矩阵,第一个嵌套循环中用if (i>j&&a[i][j]!=0)来判断下三角部分是否为零,如果不是的话就用count++来累积标记
- 后一个语句再用一个if来判断当count==0时就是符合,这时b[k]=1标记的是符合上三角矩阵的而b[k]=0是不符合的,用数组来累计标记符合上三角矩阵
- 然后根据1还是0 来显示YES或NO
3.2.2代码截图
3.2.3PTA提交列表及说明
- 没有考虑到再用数组一个数组b[k]来装1或0 的数据来累计是否符合上三角的情况,进而来判断YES还是NO,刚开始是想到用flag来标记,但是后面发现行不通因为用flag的话 只能对单个的 二维数组进行判断其是否上三角矩阵,如果要累计多个的话应该用数组来存储1和0的情况,进而判断输出YES或NO。
- 以下是我最初的方法(错的 😑)
3.3PTA题目3
3.3.1算法分析
- 定义二维数组a[110][19],并用getchar输入每行字符数组a[i]
- 用嵌套循环 来和if 来筛选并且用count++和flag进行标记,如果并且进行加权求和,将字符变成数字,得到的数字对11取余之后和m 对应,看是否和最后一位字符对应,如果不对应则输出a[i]并标记count++
- 如果都符合的话则用if语句 判断当count==0时 输出All passed
3.3.2代码截图
3.3.3PTA提交列表及说明
- 一开始 对加权求和是蒙的,不知道怎么算,接着就是对数据的验证还有标记累计不熟练,不知道该怎么用,什么时候用count++,什么时候用flag
- 经过思考后,发现验证第一个判断语句还有第二个判断语句很关键,还有后面加权求和的时候要将字符转化成数字才能进行对11取余