Longjingrap

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、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上面,基础也很重要,就是要多敲代码的同时也要把书本内容掌握
  • 把错的题相应的知识点搞懂,不能错了就错了
  • 多在纸上写代码,增强手写代码的能力,养成一个好习惯
  • 学习态度要端正,不能随随便便,上课认真做笔记
  • 希望老师布置的作业能类似一下期中考试那样,让我们能够更加熟练掌握
posted on 2017-12-03 18:17  Longjingrap  阅读(292)  评论(1编辑  收藏  举报