C语言博客作业--一二维数组

一、PTA实验作业

题目1:7-1 将数组中的数逆序存放

1. 本题PTA提交列表

1232142-20171201202347636-275809683.png

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.代码截图

1232142-20171201231217479-480579850.png

4.本题调试过程碰到问题及PTA提交列表情况说明。

1232142-20171201231242183-1058271513.png

  • 1.格式错误主要是一开始没考虑到数字后面的空格,然后就每个输出后面我都加了空格,但是最后面输出的数是不需要空格的,就加了个j==0不用输出空格的条件,就可以正确了

    题目2:7-4 简化的插入排序

    1. 本题PTA提交列表

    1232142-20171201222030448-525810148.png

    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.代码截图

1232142-20171201231138573-1720448376.png

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 这道题没遇到什么问题,但是插入法一开始逻辑有点混乱,然后是去看同学的博客作业中插入法的算法介绍,懂了就好做了

    题目3:7-9 判断上三角矩阵

    1. 本题PTA提交列表

    1232142-20171201224410792-365958278.png

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.代码截图

1232142-20171201225841589-2039266503.png

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 这道题主要是后面没有给flag重新赋值1,当时写的时候还有其他错误,但没截图,现在也有点忘记了。

    二、截图本周题目集的PTA最后排名。

    1232142-20171203161453460-1733221138.png

三、同学代码结对互评

1.互评同学名称

彭希

2.我的代码、互评同学代码截图

1232142-20171203174431257-1387834229.png
1232142-20171203174447960-874810930.png

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.本周的内容,你还不会什么?

1232142-20171203175431257-1310934666.png

  • 这两道题没有思路,无从下手
  • 插入法,冒泡法,选择法说实话还不是很熟练,容易逻辑混乱,要慢慢理清楚
  • 预习作业改错自己很难找全,还是需要多练练

    3.期中考试小结

    3.1你认为为什么没考好?

  • 基础没有掌握好,对于知识点没没有掌握牢靠
  • 平时做题主要局限于PTA,离开了电脑什么都不会,手写代码能力不强,电脑有调试,但考试没有
  • 之前也没考过试,不熟悉考卷的框架,时间掌握不够
  • 阅读代码能力也不强,可能是因为看的代码不够多和试卷做题太少

    3.2 罗列错题

    1232142-20171203130052351-1151415722.jpg

  • 关于进制内容说实话还是不太懂,但学长说了之后能掌握一点了
    1232142-20171203123706554-392654533.png

  • 循环那个条件考试时看不懂,但在知道那个y=3是赋值,循环次数是通过x实现的
    1232142-20171203124223163-400578674.png

  • while()是判断真假语句,我看成以为x不为0,就可以无限循环了
    1232142-20171203124453101-1676946113.png

  • static是静态变量,这个知识没掌握

    3.3 下半学期要怎么调整C的学习?

  • 不能把重心太放于PTA上面,基础也很重要,就是要多敲代码的同时也要把书本内容掌握
  • 把错的题相应的知识点搞懂,不能错了就错了
  • 多在纸上写代码,增强手写代码的能力,养成一个好习惯
  • 学习态度要端正,不能随随便便,上课认真做笔记
  • 希望老师布置的作业能类似一下期中考试那样,让我们能够更加熟练掌握

posted on 2017-12-03 18:17  Longjingrap 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/peng075078/p/7944395.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值