一、PTA实验作业
题目1:7-1 将数组中的数逆序存放
1. 本题PTA提交列表
2. 设计思路
定义数组a[10],定义变量I,n,j;
输入n;
for i=0 to n
scanf("%d",&a[i])//给数组赋值;
for j=i-1 to 0
如果j==0,输出a[j],后面没有空格
否则输出a[j],后面有空格
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 1.格式错误主要是一开始没考虑到数字后面的空格,然后就每个输出后面我都加了空格,但是最后面输出的数是不需要空格的,就加了个j==0不用输出空格的条件,就可以正确了
题目2:7-4 简化的插入排序
1. 本题PTA提交列表
2.设计思路
定义N,i,j,t;
定义数组a[10];输入N;
for i=0 to I<N
给数组赋值
定义 x,输入x,并存放到a[i]中
for j=i-1 to 0
如果(a[j]>x)
a[j]存放到a[j+1]中
然后给a[j]赋值为x;
for i=0 to N
输出a[i];
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 这道题没遇到什么问题,但是插入法一开始逻辑有点混乱,然后是去看同学的博客作业中插入法的算法介绍,懂了就好做了
题目3:7-9 判断上三角矩阵
1. 本题PTA提交列表
2.设计思路
定义repeat控制循环次数,i,k,j,n,为循环变量,flag=1
输入repeat
for k=1 to repeat
输入n
定义a[n][n] 数组
for i=0 to i<n
for j=0 to j<n
给a[i][j]赋值
for i=1 to i<n
for j=0 j<i
如果a[i][j]不为0
给flag赋值0
结束循环
如果flag等于1
输出YES
否则
输出NO
给flag赋值1,以便进行下一个循环
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 这道题主要是后面没有给flag重新赋值1,当时写的时候还有其他错误,但没截图,现在也有点忘记了。
二、截图本周题目集的PTA最后排名。
三、同学代码结对互评
1.互评同学名称
彭希
2.我的代码、互评同学代码截图
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
- 我的太繁乱了,我是按着PTA提示的错误一个一个改正的,而彭希同学的简单明了,效率又高,所以我更喜欢他的,我自己的应该也参照一下彭希的代码,毕竟我的真的太繁索了。
四、本周学习总结
1.你学会了什么?
1.1C中如何存储字符串?
- 符串可以存放在一维字符数组中,比如:static char a[6]={'H','a','p','p','y','\0'}; 也可以用gets(a)存储字符串
1.2字符串的结束标志是什么,为什么要结束标志?
- ‘\0’是字符串的结束标志,可以控制循环的结束
1.3 字符串输入有哪几种方法?
- 1.可以用scanf(“%s”,a)进行输入
- 2.也可以直接用gets(a);
- 3.while((str[i]=getchar())!=‘\0’)进行循环输入也可以
- 4.也可以用for循环scanf("%c"),不过有点麻烦了
1.4 数字字符怎么转整数,写个伪代码?
- 定义 char ch
- 输入数字字符
- 输出("%d",ch-'0');
1.5 16进制、二进制字符串如何转10进制?写伪代码?
16进制字符串转十进制
while((str[i]=getchar())!='#') i++; str[i]='\0';
number=0
for(i=0;str[i]!=‘\0’;i++){
如果为0~9字符
number=number*16+hexad[i]-‘0’;
如果为A~F字符
number=number*16+hexad[i]-'A'+10;
如果为a~f字符
numbe=number*16+hexad[i]-‘a’+10
}
输出number;
二进制字符串转换成十进制
number=0;
int a[n];
for(i=0;a[i]!=‘\0’;i--)
number=number*2+a[i]-'0';
输出number
2.本周的内容,你还不会什么?
- 这两道题没有思路,无从下手
- 插入法,冒泡法,选择法说实话还不是很熟练,容易逻辑混乱,要慢慢理清楚
- 预习作业改错自己很难找全,还是需要多练练
3.期中考试小结
3.1你认为为什么没考好?
- 基础没有掌握好,对于知识点没没有掌握牢靠
- 平时做题主要局限于PTA,离开了电脑什么都不会,手写代码能力不强,电脑有调试,但考试没有
- 之前也没考过试,不熟悉考卷的框架,时间掌握不够
- 阅读代码能力也不强,可能是因为看的代码不够多和试卷做题太少
3.2 罗列错题
-
关于进制内容说实话还是不太懂,但学长说了之后能掌握一点了
-
循环那个条件考试时看不懂,但在知道那个y=3是赋值,循环次数是通过x实现的
-
while()是判断真假语句,我看成以为x不为0,就可以无限循环了
-
static是静态变量,这个知识没掌握
3.3 下半学期要怎么调整C的学习?
- 不能把重心太放于PTA上面,基础也很重要,就是要多敲代码的同时也要把书本内容掌握
- 把错的题相应的知识点搞懂,不能错了就错了
- 多在纸上写代码,增强手写代码的能力,养成一个好习惯
- 学习态度要端正,不能随随便便,上课认真做笔记
- 希望老师布置的作业能类似一下期中考试那样,让我们能够更加熟练掌握