C语言博客作业04--数组

0.展示PTA总分


1.本章学习总结

1.1 学习内容总结

这章学习主要知识点,必须包含内容有:

  • 数组可以根据对应下标查找相应的数据,直接用数组引用下标对应的数字,即可得到对应的数。
    如果不知道数据所处的位置,那用二分法查找吧。
  • 数组插入数据,假设移入x,x=a[i];剩下的循环a[j]=a[j+1];
  • 要删除数组中的某个数据,可直接a[i]=a[i+1]替换掉改数据。也可以在循环中扣掉这个下标,输入其他下标。
  • 冒泡排序:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。
    选择排序:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。
    二分法:目标值通过与中间元素比较。
  • 例如PTA中观众投票电视栏目那一题,增强代码可读性,显得很巧妙。
  • 哈希数组用法。

    1.2本章学习体会

  • 感觉数组挺有趣的,有一些解题方法挺巧妙的,数组在程序的功能中发挥很大的作用。
  • 代码量应该是1000行左右。

    2.PTA实验作业

    2.1 7-8 二分查找法

    2.1.1

    定义变量left,right分别表示坐下标和右下标,mid为中间值。根据比较left和right,来作为循环的条件,过程中查看是否找到要找的数据。

    2.1.2

    C语言博客作业04--数组_第1张图片

    2.1.3

    输入数据 输出数据 数据说明
    3 weizhi:2 数据正常
    5 weizhi:5 数据正常

    2.1.4

    C语言博客作业04--数组_第2张图片
    原因是循环中没有定义left<=right,要知道循环的最终结果是要left=right所以等号不能缺。

    2.2 7-9 调查电视节目受欢迎程度

    2.2.1定义变量n表示观众的人数,vote表示投票的选择,i,j用来循环。

    2.2.2

    C语言博客作业04--数组_第3张图片

    2.2.3

    输入数据 输出数据 数据说明
    C语言博客作业04--数组_第4张图片
    数据正常

    2.2.4

    C语言博客作业04--数组_第5张图片
    运行错误是真的难搞,一直找不到原因,最后之后重构,取消用函数的做法。

    2.3 7-5 有重复的数据I

    2.3.1

    定义n表示输入n个数,num表示输入的数字,i用来循环,数组a[100001]用来存储数据。

    2.3.2

    C语言博客作业04--数组_第6张图片

    2.3.3

    输入数据 输出数据 数据说明
    C语言博客作业04--数组_第7张图片
    该数据正常
    C语言博客作业04--数组_第8张图片
    该数据正常

    2.3.4

    C语言博客作业04--数组_第9张图片
    前面错误的原因是数组没有定义静态数组static.

    3.阅读代码

    C语言博客作业04--数组_第10张图片
    简洁明了,代码可读性高。

你可能感兴趣的:(C语言博客作业04--数组)