数组总结

                   第一课  一维数组的定义
      数组应用的目的:为简化程序代码,提高编程效率。 
       数组应用的技巧:将作用相同,类型相同的变量集中在一起,定义、存储和操作。  
       数组就是一组相同类型的变量,往往是为了表示同一批对象的统一属性。数组可以是一维的,二维的或多维的。
         数组使用方法:在C加加中,使用一维数组时,一般是从零开始编号。例如,在数学中可以用hi表示第i个同学的身高,h[i]就表示第i+1个同学的身高,i称为“下标变量”。读入50个同学的身高,语句就可以这样书写:  for(i = 0; i <= 49; i++) cin>> h[i];  由于使用了数组和循环,代码不冗长了,所以数组经常应用在大批量、同一类型的数据处理任务中。              1.一维数组的定义      
         定义一维数组的格式如下:       
         类型标识符  数组名  [常量表达式];       其中类型标识符可以是任何基本数据类型,也可以是结构体等构造类型相同类型的数组可以一起定义。数组名必须是合法的标识符。常量表达式的值即为数组元素的个数。      
          例如,
          “int h [50];”就表示定义一个一维数组h,共有50个元素,它们的编号从零开始到49,每个元素都是int类型。       
          下面的这几个定义也是允许的:    
             int d[50],g[100];      
              int a[5*10];       
              #define N 50      
               int b[N];       
      假设要存储一万个人的中考成绩和性别,可以定义两个数组:       
               int score[10000];//或者 float score[10000];    
                  bool xb[10000];//或者 char xb[10000];     2. 一维数组的元素引用         
        数组定义好以后,就可以引用数组中的任何一个元素。引用格式为“数组名[下标]”,下标只能为整型常量或整型表达式,值必须在数组定义的下标范围内,否则会出现“下标越界错误”。     
        需要注意的是,不能一次引用整个数组,只能逐个引用数组的单个元素。         
        注:最小下标是零       
        3. 一维数组的存储结构           
        4. 数组在计算机内存单元中是连续存储的。程序一旦执行到数组的定义语句,就会开辟出若干字节的内存单元。整个数组所占的内存大小等于数组元素类型的大小乘以数组元素的个数。 
                        第二课 一维数组的输入与输出     
        5.  由于对数组的操作只能逐个引用单个元素,所以一维数组的输入输出等操作都是采用循环语句结合下标变化逐个元素进行。例如输出一个数组,可以写为:      int h[100];      for(i  = 0; i <100; i++) cout << h[i];      批量数据一次性输入到一维数组中的两种办法  
           1'键盘读入法
           2. 直接赋值法

C加加里提供了两个函数给数组整体赋值 : 1.memset函数 2.fill函数
其中memset函数是给数组按字节进行赋值,一般用在char型数组中,如果是int类型的数组,一般赋值为0和-1,使用前需要包含头文件:#include
fill 函数是给数组按元素进行赋值,可以是整个数组,也可以是部分连续元素,可以附任何值
另外C加加还支持在定义数组的同时,给所有或者部分元素赋值

                     第三课一组数组的插入删除
            在应用中,经常需要在数组中插入一个元素,或者删除数组中的某一个元素,称为数组的插入操作,或者删除操作。
            插入一个元素,需要先找到插入的位置,假设下标为x,将这个元素及其之后的所有元素依次往后移,一位注意,要从后往前进行操作,再将给定的元素插入到位置,x删除一个元素,也需要先找到删除的位置,假设下标为x将下标为x+1及其之后的所有元素依次向前移,一位覆盖原来位置上的元素
            插入或者删除一个区间,只要重复以上单个元素的操作即可。
            第四课一维数组的查找统计
            一维数组的查找操作,就是在一位数组中查找有没有某个元素?它的值等于指定的值x查找操作的结果可能是一个没找到,找到一个或者找到很多个。
            常见查找算法有顺序查找和二分查找顺序查找就是按照从前往后的顺序将数组中的元素依次与要查找的数x进行比较
            如果数组中的元素是有序的,递增或者递减也可以采用二分查找,二分查找又称为折半查找,其优点是比较次数少,查找速度快。
            第五课一维数组的元素排序
            排序就是按照某个关键字的大小将若干对象从小到大,或者从大到小进行重新排列
            关键字是对象的某一个属性,它可以是任何基本数据类型,甚至结构体等
            排序算法非常多,其中最基本的三种是选择排序冒泡排序和插入排序,它们本质上都是通过数组中的元素比较和交换来实现的,所以关键是数组下标的分析。
            第六课一维数组的应用举例
            素数大酬宾
            某商场的仓库中有n件商品,每件商品按一至n一次排号,现在商场经理突发奇想,决定将编号为素数的商品拿出来搞优惠酬宾活动,请编程帮助仓库管理员将编号为素数的商品选出来
            两种算法
            算法一,穷举法
            算法二,筛选法
            第七课二维数组的定义和操作
            一维数组的元素可以是任何基本数据类型,也可以是结构体,那么如果一维数组的每一个元素又是一个一维数组,则这种数组为二维数组
        1.   二维数组的定义和初始化
        定义二维数组的一般格式为:
        类型标识符  数组名   []常量表达式一    []常量表达式二
        常量表达式一的值表示第一为大小常量表达式二的值表示第二位大小常量表达式一和常量表达式二的乘积就是二维数组的元素个数
        2.  二维数组的存储及元素引用
        二维数组本质上是一维数组的每一个元素,又是一个一维数组计算机内部存储意为数组的是连续存储单元,所以二维数组的存储方式是行优先的,联系存储先逐个存储第零行上的所有元素,在逐个存储第一行上的所有元素,以此类推
        第九课数字方阵
        数字方阵就是一个行列,数相等的二维数组,其中的每个元素都是数字解决数字方阵问题,一般有两种方法解析法和模拟法
        解析法就是找出每一个方阵元素,fig与ig和数组规模n的通项公式,然后直接用两重循环给数组元素赋值,相对较容易,一般用在初始化等场合模拟法,就是把数字方阵看成一个动态的田树过程,把n方个元素依次填入数组中,每填好一个数就定位好下一个数的位置,i j
        
        第十课字符数组
        如果数组中的每个元素都是一个字符,这样的数组称为字符数组
        有时把一维字符数组又称为字符,串定义字符数组的方法与定义其他类型数组的方法类似
        总结感想:在学习数组,继顺序结构程序设计,分支结构程序设计,循环结构程序设计以后,用C语言表达问题解决问题的办法又多了很多,不再局限于某一类某一种的问题了。但还是觉得自己不会的又变多了一些,各种字符换在一起分不清了,题目也更难了,但还是要继续学习才有可能学会这门课程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值