zoukankan      html  css  js  c++  java
  • <四> 数组--Array

    【1】首先我们了解一下什么是数组

    • 数组:由若干个数据类型相同的元素组成的集合。

    【2】当然还有数组是怎么定义的?

    • 定义:数据类型  数组名[元素个数];
      • eg:int  a[5];
    • 元素:a[0] ~ a[n-1]

    【3】接下来我们看下数组定义的几种方式

    1. int a[5] = {0,1,2,3,4};
    2. int a[ ] = {0,1,2,3};     //==> int a[4];
    3. #define N 7        int a[N];
    4. int a[n];           //n为变量时,不能初始化
    5. int a[ ];  //错误!!!

    【4】初始化

    1. 可以全部赋值,但不可以空间越界多赋值
    2. 局部赋值:没有赋值的部分默认为0
    3. 局部变量且不初始化:则数据元素为随机值

    【5】性质:

    1. 元素类型相同
    2. 存储空间连续
    3. 数组名是首元素的地址

    【6】数组名

    1. 数组名是首元素的地址
    2. sizeof(数组名); //求空间大小
    3. sizeof(数组名)/sizeof(a[0]); //求元素个数

    【7】注意:数据越界访问时不报错。

    • int a[5]; ------------------->  a[5];

    【8】冒泡排序

    1. 比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止――第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上
    2. 对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置
    3. 重复上述过程,共经过n-1趟冒泡排序后,排序结束

    第一种方法

     1     int i,j;
     2     for(i=0; i<N-1; i++)
     3     {
     4        for(j=0; j<N-i-1; j++)
     5         {
     6           if(a[j] > [j+1])
     7            {
     8             t = a[j];
     9             a[j] = a[j+1];
    10             a[j+1] = t;
    11             }
    12         }
    13     }

    第二种方法

     1     int i,j; 
     2     for(i=0; i<N-1; i++)
     3     {   
     4         for(j=i+1; j<N; j++)
     5         {   
     6                 if(a[i] > a[j])
     7            {   
     8                 a[j] ^= a[j+1];             
     9                 a[j+1] ^= a[j];
    10                 a[j] ^= a[j+1];
    11             }   
    12         }   
    13     }   

    【9】二维数组

    • 1--- int a[3][4] = {0};
      • int a[][2] = {0,1,2,3,4}; 《===》 int a[3][2];行数可以省略
    • 2--- 数据类型相同
    • 3--- 数据存储是连续的;
    • 4--- 数组名代表数组的首元素地址(首地址);
    • 5--- a[0]、a[1]、a[2] 代表每一行的首地址;

    【10】char

    • char a[10] = “hello”          //以字符串常量直接赋值,只能在对数组初始化的时候
    • char b[] = "acb";               //size = 4
    • char c[] = {'A','B','C'};       //以printf("%s",c)打印的结果不可预知,最后没有''

    输出:printf("%c"); printf("%s"); puts();

    输入:scanf("%c"); scanf("%s"); gets();

    青春看起来如此完美, 没空闲去浪费时间。 <我们最后的话——刺猬>
  • 相关阅读:
    失败的项目,反思
    没人教的项目管理方法之(明白该干什么) 二、项目章程如何写(下)
    没人教的项目管理方法之(明白该干什么) 二、项目章程如何写(上)
    转载:WireShark 过滤语法
    转载:各个Linux版本的本地root密码破解方法
    w7升级旗舰版
    xmarks hosts
    Server、Workstation、Secondary Logon服务无法自启动
    windows2003,xp,RHEL 5 序列号/SN
    项目管理解决方案
  • 原文地址:https://www.cnblogs.com/WangJing0506/p/8541539.html
Copyright © 2011-2022 走看看