zoukankan      html  css  js  c++  java
  • C博客作业04数组

    1.本章学习总结

    1.1思维导图

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

    1.2.1 学习体会

    • 本周在C语言学习上用的时间较少,导致PTA题集进度滞后,数组上机考试分数极低
    • 数组题目掌握较差,之后的学习中会加大这一部分的练习量
    • 学会了一维数组、二维数组、字符数组的部分使用方法,了解了冒泡法排序,螺旋方阵的操作方法,学会使用字符串函数

    1.2.2 代码累计

    2.PTA总分

    2.1截图PTA中的排名得分



    2.2 我的总分

    一维数组:200
    二维数组:105
    字符数组:150
    总分:455

    3. PTA实验作业

    3.1 PTA题目1

    在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。
    你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。

    3.1.1 算法分析

    定义数组a[n]
    定义数组hash[10001]
    for i=0 to n
      输入a[i]
      hash[a[i]]++
      if hash[a[i]]>1
        输出YES
        break
      end if
    end for
    if i=n
    输出NO
    end if
    

    3.1.2 代码截图

    3.1.3 测试数据


    3.1.4 PTA提交列表及说明

    说明:

    Q1:未将hash数组作为static数组初始化
    A1:在同学指出后改正

    3.2 PTA题目2

    一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
    本题要求编写程序,求一个给定的n阶方阵的鞍点。

    3.2.1 算法分析

    输入n
    for i=0 to n
        for j=0 to n
        输入a[i][j]
        end for
    end for
    for i=0 to n
        mk1=i
        point=a[i][0]
        for j=0 to n
            if a[i][j]>=point
                point=a[i][j]
                mk2=j
            end if
        end for
        for k=i to n
            if point>a[k][mk2]
                break
            end if
        end for
        if k=n
            found=1
            break
        end if
    end for
    if found=1
        输出mk1,mk2
    else
        输出NONE
    

    3.2.2 代码截图


    3.2.3 测试数据


    3.2.4 PTA提交列表及说明

    说明:

    Q1:遍历数组找行最大值时忽视本身等于最大的情况
    A1:a[i][j]>point改为a[i][j]>=point,答案正确

    3.3 PTA题目3

    输入一个字符串,判断是否是合法邮箱(格式正确即可,不管是否真的存在)输入的只能是字母、数字、下划线、@以及.五种, @前后只能是字母或者数字,而且.后只能是com, 是则输出YES ,否则输出NO。

    3.3.1 算法分析

    定义字符串email[]
    gets(email)
    n=strlen(email)
    for i=0 to n
        if email[i]=@
        break
        end if
    end for
    temp=i
    if i=0或i=n
        error=1
    end if
    if email[i-1]=_||email[i+1]=_
        error=1
    end if
    在@前找非法字符
    
    在@与.之间找非法字符
    
    if i=temp+1 或 i=n
        error=1
    end if
    判断.后是否为com
    
    if error=1
        输出NO
    else
        输出YES
    

    3.3.2 代码截图


    3.3.3 测试数据



    3.3.4 PTA提交列表及说明

    说明:

    Q1:将@前后只能是字母或者数字理解错误误以为不能有_
    A1:加入特判修正@前后一位为_
    Q2:试了一个晚上还是有1分拿不到
    A2:最后发现bug差点当场去世,啊啊啊!!!!

    4.代码互评

    4.1 代码截图

    4.1.1 自己:


    4.1.2 他人:



    4.2 二者的不同:

    • 4.1.1的代码使用了函数进行加法运算,4.1.2直接使用if-else将两种情况代码全部列出
    • 4.1.2创建了字符数组c存放结果,4.1.1直接将短字符串加到长字符串上输出
    • 4.1.1使用printf("1")输出最高位的1,4.1.2无需考虑最高位1是否越界
  • 相关阅读:
    串口通信中接收数据时延迟处理与缓存处理的解决方案(C#)
    串口通讯接收数据的处理
    在C#程序设计中使用Win32类库
    C# Mutex对象学习经验
    我眼中的C# 3.0 Written by Allen Lee
    利用C#鼠标拖动TreeView节点
    richtextbox内文字自动滚动的例子
    在十六进制字符串与数值类型之间转换 C# 编程指南
    如何:指定符号位置和加载行为
    杂记20110321
  • 原文地址:https://www.cnblogs.com/kisamko/p/10026881.html
Copyright © 2011-2022 走看看