C语言第七次博客作业--一二维数组
一、PTA实验作业
题目1将数组中的数逆序存放
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
这个题很容易理解,知道要把一串数字到过来放,但是不知道要怎么表达逆序,我想到的思路就是将数对半分开然后首尾交换位置
但是第二个循环里面的交换没有搞清楚下标的变化情况,所以导致答案错误,此题忘记截图了
我总是会有段错误这个东西,因为输入数组的时候忘记加&了,这个错误犯了三次才记住它
题目2:简化的插入排序
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
上网查了一下插入法的基本思想,得到如上图的错误代码,刚开始都不能运行,但是加了break就可以了,但是答案并没有正确,插入到了合适的位置,
但是后面的数排序是乱的,甚至还少了数和多了数
然后问了王同学,他告诉我要选一个排序法把后面的数也排序了,于是我又加了两个变量,还加了一个j循环,得到如下图代码
但是还是错的,中间的两个数排反了,循环太多导致我有点晕,不太懂那个循环是干嘛的,于是我又重新屡屡思路,把那个for循环和break给删掉了
只加了index这个变量存放最小值的下标,然后分析插入的数和各个值的下标的关系,大的往后挪,小的往前插,最终才得到正确结果
题目3:杨辉三角
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
如上图所示 错误就是冒出来一大堆数字,要么就是很多循环,i,j不正确所以导致循环错误,,没办法只能一行一列的慢慢考虑慢慢改
在for循环里面每个数字都尝试一遍,最后改成第二张图所示,模型出来了,但是数值没有正确,每列的开头都为1,但是我的没有,错在了j<=i,
把第四个for循环l里面的条件改成j<=i-1就正确了
二、截图本周题目集的PTA最后排名
三、同学代码结对互评
我的代码:
吕雅慧的代码:
我和她的代码不同在数组,我只用了一个数组,她用了两个数组,还有判断的条件,其余的大同小异。
她的优势是注释比我多,让读者比较容易看懂
我更喜欢她的风格,哪一步在做什么注释得很清楚
四、本周学习总结
1.你学会了什么?
1.1 C中如何存储字符串?
使用字符数组存储,使用字符指针存储
1.2 字符串的结束标志是什么,为什么要结束标志?
字符串的结束标准是'\0'. '\0'是判断是否结束字符串的操作,没有它字符串就不能正常结束,影响后面的操作
1.3 字符串输入有哪几种方法?
getchar() gets() scanf()
1.4 数字字符怎么转整数,写个伪代码?
number=number*10+ch-'0'
1.5 16进制、二进制字符串如何转10进制?写伪代码?
16转10:number=number16+:str[i]-'0'
2转10:number=number2+str[i]-'0'
2.本周的内容,你还不会什么?
(1)对一维数组和二维数组的赋值,长度掌握还不太深,如课堂派char x[ ]="abcdefg"; char y[ ]={'a', 'b', 'c', 'd', 'e', 'f', 'g'}这个题总是傻傻分不清楚,总感觉他们是一样长的
(2)对于数组的下标有点糊涂,矩阵的上三角和下三角也还没有搞明白
(3)对于循环结构有点晕,导致做题的时候要么就是少了,要么就是多了,尤其是数组循环的下标,例如数字移动和插入都用到交换下标,我就有点糊涂在这
(4)我最常犯的一个错误就算输入数组的时候老是忘记&号(scanf(“%d”,&a[i])),导致程序都不能运行,每次都是段错误,被后面的%s给误导了,好在现在记清楚了
3.期中考试小结
3.1 你认为为什么没考好
期中考试错的地方都是不会的,有的选择题是蒙对的,主要原因还是自己掌握不精,没有学到知识,改错还把对的给改错了,还倒扣分
3.2 罗列错题
选择第六题:正确的c语言语句我选了C:x=n%2,正确答案是B:x=y==5;原来选择题还要看分号,遗漏了一个分号
填空第一题:当时没想到要返回c的值,就随便填了c++,应该改为return 0;
改错第一题:scanf(“%d,%d”,a,b);改成了scanf("%d%d",a,b),这么明显的错误,不知道自己怎么想的竟然没有加&号
编程题:编程题好像只得了框架分,内容杂乱无章,还没有去琢磨呢
3.3 下半学期要怎么调整C的学习?
师傅领进门,修行靠个人,并不是我不努力,我觉得在c方面好像不适合我修行,对它没有什么感觉,老是记不住它,刚学的知识过一会又是懵逼状态了,
我很迷茫很焦急啊,和别人同样是学,但是感觉自己很吃力,在c方面九窍通了,还有一窍不通,基础的c都这么困难,都不敢想什么c++和Java了,
下个学期。。。。。。走一步看一步吧!