• C语言博客作业04数组


    1.本章学习总结

    1.1 思维导图

    1.2 本章学习体会及代码量学习体会

    1.2.1 学习体会

    • 数组这一部分的学习难度有所提升,并不同前面的学习一样可以慢慢地学,因为没有接触过数组对数组的一些用法并不熟悉,在写题的时候即使有思路每次写都会出现许多的错误,而且数组多用循环,调试的话比较复杂,有时候一个题目要调试很久,一部分一部分地进行,有的题目可能就是当天怎么写就是不对,过几天比较不急躁再认真看看就能自己看出问题了,有时也可以找其他同学看看,但自身的能力还需提高。
    • 这几周的代码量有点少,遇到线性代数期末考,下一周要增加写代码的时间,希望每天晚上晚自习结束给自己一个小时以上打代码时间。

    1.2.2 代码累计

    2.PTA总分

    2.1截图PTA三次题目集:一维数组、二维数组和字符数组共3次题目集的排名得分



    2.2 我的总分:

    455

    3.PTA实验作业

    3.1 PTA题目1

    7-8 找出不是两个数组共有的元素 (20 分)

    给定两个整型数组,本题要求找出不是两者共有的元素。
    输入格式:
    输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。
    输出格式:
    在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。

    3.1.1 算法分析

    3.1.2 代码截图


    3.1.3 PTA提交列表及说明


    Q:怎么出现段错误
    A:在循环的时候出错,把想写j写成i,调试了很久都没发现,简直了
    Q:部分正确又是什么情况
    A:在区分该不该标1的时候漏了=号,使一个元素既不属于第一组,又不属于第二组的,答案自然就错啦

    3.2 PTA题目2

    7-8 加法口诀表 (10 分)
    输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
    输入 1 个正整数 n(1≤n≤10), 输出一张 20 以内的加法口诀表. 加数与被加数都不大于 n, 分列第一行和第一列
    (将加数、被加数、和放入一个二维数组中, 再输出该数组)

    3.2.1 算法分析

    通过观察得知第一行第一列的数皆属于行数,故
    for i=1 to i<=n
    number[0][i]=i;
    number[i][0]=i;
    end for	
    通过观察得知中间的数皆属于行数与列数之和,故
    for i=1 to i<=n
        forj=1 to j<=n
    	    number[i][j]=i+j;
        end for
    end for
    最后输出
    除第一行外,元素的个数与行数相等
    

    3.2.2 代码截图


    3.2.3 PTA提交列表及说明


    Q:为什么会有部分正确的情况
    A:定义的数组大小太小了,刚开始只给了100,不符合题目给出的要求

    3.3 PTA题目3

    7-6 A-B (20 分)
    本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。

    3.3.1 算法分析

    用gets()函数分别输入字符串A和B
    用for循环找出A和B共有的元素标1
    for i=0 to seriesA[i]!='\0'
        flag=0;//重置
            for j=0 to seriesB[j]!='\0'
               if seriesA[i]==seriesB[j] then//查找重复的标1 
    	    flag=1;
        	    break;
                end if
             end for
    end for
    挑出不标1的元素,整合到一起
    if flag==0 then
              series[k++]=seriesA[i];
    end if
    for i=0 to i<k
         输出
    end for
    

    3.3.2 代码

    3.3.3 PTA提交列表及说明


    Q:为什么一直格式错误
    A:在控制输出的时候前几个用%-4d输出,而最后一个%d输出
    自己在控制输出格式时没有注意到第一行,而一直格式错误

    4.代码互评

    4.1 代码截图

    同学代码截图

    自己的代码截图

    4.2 二者的不同

    • 1.输出的方式不一样,因为同学有以'\0'作为结尾,所以可以直接用%s输出
      然而我并没有以'\0'作为结尾,所以我要找出一共要有几个输出,较为麻
      烦容易出错
    • 2.同学先进行字符的排序,相同的字符就在旁边就可以不需要循环就可以找出重复的字符
      但有一定的局限性,如果有多个重复就不好办了
      而我进行多次的循环,比较费时
  • 相关阅读:
    Linux用户组管理及用户权限3
    MySQL预处理和事务
    MySQL-子查询和多表联查
    Mysql-分组和聚合函数
    LNMP搭建
    apache-虚拟主机配置
    Apache-重写
    apache配置文件详解
    vim使用
    php-curl_init函数
  • 原文地址:https://www.cnblogs.com/linshuxin1761/p/10089281.html
Copyright © 2020-2023  润新知