• 黑马程序员——数组


    黑马程序员——数组

     

    1、概念:定义数组时需要指定这批变量类型、数组名称,数组中包含变量的个数 。  

    例如:int a[10]    表示定义了一个整形数组,数组名为a,此数组有10个元素。

    2、一维数组定义数组基本方式为类型符  数组名[常量表达式]

    注意:定义数组时,用到的“数组名[常量表达式]”和引用数组元素时用到的“数组名[下标]”在形式上相似,但在含以上和用法上是不同的。如:

          int a[10];        /*定义素组长度为10*/

          t=a[6];          /*引用a数组中序号为6的元素,此时6不代表数组长度*/

    如果在数组名[常量]前有类型名(如int,float,char),则此时是定义数组;如果在其前面没有类型名,则是引用数组元素

    例:引用数组元素,利用循环数组元素a[0]~a[9]赋值为0~9,然后按逆序输出各元素的值

              

     1  #include "stdio.h"
     2 
     3 void main()
     4 
     5 {
     6 
     7    int i,a[10];//定义整型变量i和整形数组a,a有10个元素
     8 
     9    for(i=0;i<=9;i++)//先后对10个数组元素赋值
    10 
    11    a[i]=i;
    12 
    13    for(i=9;i>=0;i--)
    14 
    15    printf("%d",a[i]);//按逆序先后输出数组a中的10个元素
    16 
    17    printf("\n");
    18 
    19 }

    运行结果为:9876543210

    **3、数组的初始化**

          在数组赋的初值,是按循序赋给相应的数组元素的。如果只是一部分赋初值,那么剩下的元素就会自动设为0。

        数组:int a[]={1,2,3,4};  //由于有4个初值,系统自动确定数组有4个元素

          如果所定义的数组的长度和初始化的数据的个数相同,则定义数组时可以不写数组长度

    **4、二维数组**

      二维数组的一般式为:类型名  数组名[常量表达式][常量表达式];

       常量表达式可以为整形常量,也可以为整型表达式如a[2-1][2*2-1]

    **5、二维数组的初始化**

       1)分行给二维数组赋初值

    int [3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

       2)可以将所有数据写在一个大括号,按数组排列的顺序对各元素赋初值

    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12,13};

       3)可以对部分元素赋初值(这种方法对非0元素少时方便使用)

    int a[3][4]={{1},{5},{9}};

     1 /*假如有10个数,比较10个数的大小并排序 */
     2 
     3 #include "stdio.h"
     4 
     5 void main()
     6 
     7 {
     8 
     9     int a[10];
    10 
    11     int i,j,t;
    12 
    13     printf("请输入10个数字:\n");
    14 
    15     for(i=0;i<10;i++)
    16 
    17     scanf("%d",&a[i]);//先后输入10个数字
    18 
    19     printf("\n");
    20 
    21     for(j=0;j<9;j++)//进行9次循环,实现9次比较
    22 
    23      for(i=0;i<9-j;i++)//在每一次中进行9-j次比较
    24 
    25      if(a[i]>a[i+1])//相邻两个数比较
    26 
    27      {
    28 
    29          t=a[i];a[i]=a[i+1];a[i+1]=t;
    30 
    31      }
    32 
    33      printf("排序后的数字:\n");
    34 
    35      for(i=0;i<10;i++)
    36 
    37      printf("%d\t",a[i]);
    38 
    39 }

    结果:

     1 /* 将二维数组a的行与列互换存在另一个数组b中 */
     2 
     3 /*编程思路:将a数组中的i行j列赋值给b数组的j行i列,如a[0][1]赋给b[1][0],a[0][2]b[2][0],可以利用双层循环来除了,用外循环控制行数的变化,内循环控制列的变化*/
     4 
     5 #include "stdio.h"
     6 
     7 void main()
     8 
     9 {
    10 
    11     int a[2][3]={{1,2,3},{4,5,6}};//定义数组a并赋值
    12 
    13     int b[3][2],i,j;//定义数组a
    14 
    15     printf("a的变化\n");
    16 
    17     for(i=0;i<2;i++)//用i控制行数的变化
    18 
    19     {
    20 
    21           for(j=0;j<3;j++)//用j控制列数的变化
    22 
    23           {
    24 
    25                  printf("%5d",a[i][j]);//输出a数组中的i行j列元素
    26 
    27                  b[j][i]=a[i][j];//将a数组中的i行j列赋值给b数组的j行i列
    28 
    29           }
    30 
    31           printf("\n");
    32 
    33     }
    34 
    35     printf("b的变化\n");
    36 
    37      for(i=0;i<3;i++){
    38 
    39           for(j=0;j<2;j++)
    40 
    41                  printf("%5d",b[i][j]);//输出b数组元素
    42 
    43                  b[j][i]=a[i][j];
    44 
    45           printf("\n");
    46 
    47     }
    48 
    49 }

    结果:

     

  • 相关阅读:
    视频质量诊断之详解
    Leetcode 22.生成括号对数
    leetcode 19.删除链表的第n个节点
    Leetcode 11.盛最多水的容器
    Leetcode 6.Z字形变换
    Leetcode 4.两个排序数组的中位数
    Leetcode 3.无重复字符的最长子串
    Leetcode 1.两数之和
    RNN and Language modeling in TensorFlow
    Tensorflow word2vec+manage experiments
  • 原文地址:https://www.cnblogs.com/gaozp/p/4835786.html
Copyright © 2020-2023  润新知