精华内容
下载资源
问答
  • C语言总结第七章、数组一维数组一维数组的定义一维数组的引用一维数组的初始化程序举例二维数组及多维数组二维数组的定义二维数组元素的引用二维数组元素的初始化程序举例字符数组和字符串字符数组 第七章、数组 ...

    第七章、数组

    数组是构造数据类型之一

    • 数组: 有序数据的集合,用数组名标识
    • 元素: 属同一数据类型,用数组名和下标确定

    一维数组

    一维数组的定义

    定义方式:
    在这里插入图片描述
    例: int a[6]
    在这里插入图片描述

    一维数组的引用

    1、数组必须先定义,后使用。
    2、只能逐个引用数组元素,不能一次引用整个数组。
    3、数组元素表示形式: 数组名[下标] ,下标可以是常量或整型表达式

    一维数组的初始化

    初始化方式:
    在这里插入图片描述

    说明:
    1、数组不初始化,其元素值为随机数。
    2、对static数组元素不赋初值,系统会自动赋以0值。
    在这里插入图片描述
    3、只给部分数组元素赋初值。
    在这里插入图片描述
    4、当全部数组元素赋初值时,可不指定数组长度。
    在这里插入图片描述

    程序举例

    例1: 读10个整数存入数组,找出其中最大值和最小值
    在这里插入图片描述

    /*示例1*/
    #include <stdio.h>
    #define SIZE 10
    main()
    {   int x[SIZE],i,max,min;
        printf("Enter 10 integers:\n");
        for(i=0;i<SIZE;i++)
        {   printf("%d:",i+1);
    	scanf("%d",&x[i]);
        }
        max=min=x[0];
        for(i=1;i<SIZE;i++)
        {  if(max<x[i])  max=x[i];
           if(min>x[i])  min=x[i];
        }
        printf("Maximum value is %d\n",max);
        printf("Minimum value is %d\n",min);
    }
    

    例2: 用数组求Fibonacci数列前20个数
    在这里插入图片描述

    /*示例2*/
    #include <stdio.h>
    main()
    {   int i;
         int f[20]={1,1};
        for(i=2;i<20;i++)
           f[i]=f[i-2]+f[i-1];
        for(i=0;i<20;i++)
        {   if(i%5==0)  printf("\n");
             printf("%12d",f[i]);
        }
    }
    

    例3: 用冒泡法对10个数排序
    在这里插入图片描述
    在这里插入图片描述

    /*示例3*/
    #include <stdio.h>
    main()
    {   int a[11],i,j,t;
        printf("Input 10 numbers:\n");
        for(i=1;i<11;i++)
           scanf("%d",&a[i]);
        printf("\n");
        for(j=1;j<=9;j++)
           for(i=1;i<=10-j;i++)
              if(a[i]>a[i+1])
             {t=a[i]; a[i]=a[i+1]; a[i+1]=t;}
        printf("The sorted numbers:\n");
        for(i=1;i<11;i++)
    	printf("%d ",a[i]);
    }
    

    例4: 用简单选择法对10个数排序

    在这里插入图片描述

    在这里插入图片描述

     /*示例4*/
    #include <stdio.h>  
    main()
    {   int a[11],i,j,k,x;
        printf("Input 10 numbers:\n");
        for(i=1;i<11;i++)
           scanf("%d",&a[i]);
        printf("\n");
       for(i=1;i<10;i++)
       {  k=i;
          for(j=i+1;j<=10;j++)
                if(a[j]<a[k])  k=j;
          if(i!=k)
          {  x=a[i]; a[i]=a[k]; a[k]=x;}
       }
        printf("The sorted numbers:\n");
        for(i=1;i<11;i++)
    	printf("%d ",a[i]);
    }
    

    二维数组及多维数组

    二维数组的定义

    定义方式: 
    在这里插入图片描述
    在这里插入图片描述
    数组元素的存放顺序
    1、原因: 内存是一维的
    2、二维数组: 按行序优先
    3、多维数组: 最右下标变化最快

    在这里插入图片描述
    数组a[m][n],m行n列,共m*n个元素
    在这里插入图片描述

    这些元素占用m*n个单元,每个单元的大小取决于
    元素的类型。

    任意元素a[i][j]在数组中的位置计算公式为:

    i×n+j (从0开始)

    a——数组的起始地址;a[0]——0行0列元素的地址。

    二维数组元素的引用

    形式: 数组名[下标][下标]

    二维数组元素的初始化

    1、分行初始化
    2、按元素排列顺序初始化

    程序举例

    例1:将二维数组行列元素互换,存到另一个数组中
    在这里插入图片描述

    /*示例1*/
    #include <stdio.h>
    main()
    {   int a[2][3]={{1,2,3},{4,5,6}};
         int b[3][2],i,j;
        printf("array a:\n");
        for(i=0;i<=1;i++)
        {   for(j=0;j<=2;j++)
    	{   printf("%5d",a[i][j]);
    	    b[j][i]=a[i][j];
    	}
    	printf("\n");
        }    
        printf("array b:\n");
        for(i=0;i<=2;i++)
        {   for(j=0;j<=1;j++)
    	   printf("%5d",b[i][j]);
             printf("\n");
        }
    }
    

    例2:求二维数组中最大元素值及其行列号
    在这里插入图片描述

    /*示例2*/
    #include <stdio.h>
    main()
    {  int a[3][4]={{1,2,3,4},
                            {9,8,7,6},
                            {-10,10,-5,2}};
        int i,j,row=0,colum=0,max;
        max=a[0][0];
        for(i=0;i<=2;i++)
           for(j=0;j<=3;j++)
               if(a[i][j]>max)
    	  {  max=a[i][j];
    	     row=i;
    	     colum=j;
    	  }
        printf("max=%d,row=%d,\colum=%d\n",max,row,colum);
    }
    

    例3:分别求n阶方阵两条对角线上的元素之和

    /*示例3*/
    #define N 3
    main()
    {   int i,j,a[N][N];
    int sum1=0,sum2=0;
    for(i=0;i<N;i++)
      for(j=0;j<N;j++)
        scanf(%d”,&a[i][j]);
    for(i=0;i<N;i++)
      for(j=0;j<N;j++)
        if(i==j) sum1+=a[i][j];
    for(i=0;i<N;i++)
      for(j=N-1;j>=0;j--)
        if((i+j)==N-1) sum2+=a[i][j];
    printf(“sum1=%d,sum2=%d\n”,sum1,sum2);
    }
    

    字符数组和字符串

    字符数组

    定义 : 每个元素存一个字符,主要用来对字符串操作。
    字符数组的初始化:

    1、逐个字符赋值
    2、用字符串常量

    字符数组的引用:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    字符串

    字符串及其结束标志

    (1)、无字符串变量,用字符数组处理字符串。
    (2)、字符串结束标志:‘\0’。

    在这里插入图片描述
    字符串的输入输出
    输入:

    • 用scanf函数
      (1).输入单个字符:%c 需用循环语句
      (2).输入字符串:%s scanf(“%s”,str);
    • 用gets函数:gets(str);

    输出:

    • 用printf函数
      (1).输出单个字符:%c 需用循环语句
      (2).输出字符串:%s printf(“%s”,str);
    • 用puts函数:puts(str);

    在这里插入图片描述

    常用的字符串处理函数: 加粗样式包含在头文件 string.h

    字符串输出函数puts

    格式: puts(字符数组)
    功能: 向显示器输出字符串(输出完,换行)
    说明: 字符数组必须以‘\0’结束

    字符串输入函数gets

    格式: gets(字符数组)
    功能: 从键盘输入一以回车结束的字符串放入字符数组中,并自动加‘\0’
    说明: 输入串长度应小于字符数组维数

    字符串连接函数strcat

    格式: strcat(字符数组1,字符数组2)
    功能: 把字符数组2连到字符数组1后面
    返值: 返回字符数组1的首地址
    说明:
    1、字符数组1必须足够大
    2、连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消, 新串最后加‘\0’

    字符串拷贝函数strcpy

    格式: strcpy(字符数组1,字符串2)
    功能: 将字符串2,拷贝到字符数组1中去
    返值: 返回字符数组1的首地址
    说明:
    1、字符数组1必须足够大
    2、拷贝时‘\0’一同拷贝
    3、不能使用赋值语句为一个字符数组赋值
    在这里插入图片描述

    字符串比较函数strcmp

    格式: strcmp(字符串1,字符串2)
    功能: 比较两个字符串
    比较规则: 对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘\0’为止
    返值: 返回int型整数,
    a. 若字符串1< 字符串2, 返回负整数
    b. 若字符串1> 字符串2, 返回正整数
    c. 若字符串1== 字符串2, 返回零
    说明: 字符串比较不能用“==”,必须用strcmp

    字符串比较函数strcmp

    字符串长度函数strlen
    格式:strlen(字符数组)
    功能:计算字符串长度
    返值:返回字符串实际长度,不包括‘\0’在内
    在这里插入图片描述

    展开全文
  • Java数组介绍(一维数组和二维数组)1. 概述· 数组是存储多个变量的容器。· 存储的多个变量必须是同种数据类型。· 数组既可以存储基本数据类型,也可以存储引用数据类型。2. 数组定义的格式· 格式1:数据...

    Java数组介绍(一维数组和二维数组)

    1. 概述

    · 数组是存储多个变量的容器。

    · 存储的多个变量必须是同一种数据类型。

    · 数组既可以存储基本数据类型,也可以存储引用数据类型。

    2. 数组定义的格式

    · 格式1:数据类型[] 数组名。

    · 格式2:数据类型 数组名[]。

    3. 访问数组中的元素

    3.1 概述

    数组中的每个元素都是由编号的,编号从0开始,到数组的长度减1结束,通过数组名和编号的配合就能取出数组中指定的元素,编号的专业称呼是索引。

    3.2 访问数组中元素的格式

    · 数组名[编号]

    · 比如数组名是arr,那么获取arr数组中的第一个元素的格式是arr[0]。

    4. 数组的初始化

    4.1 概述

    Java中的数组必须初始化之后才能够使用,初始化就是指的给数组中的元素分配内存空间,并赋值。

    4.2 数组的初始化有两种方式,静态初始化和动态初始化

    4.2.1 静态初始化

    · 概述:

    初始化时指定每个数组元素的初始值,由系统决定数组长度。

    · 格式:

    数据类型[] 数组名 = new 数据类型[]{元素值1,元素值2,…};或者数据类型[] 数组名 = {元素1,元素2,...};

    · 内存图:

    · 举例:

    Int[] arr = new int[]{1,2,3}或者int[] arr = {1,2,3}

    4.2.2 动态初始化

    · 概述:

    初始化时只指定数组长度(数组中元素的个数),由系统为数组分配初始值。

    · 格式:

    数据类型[] 数组名 = new 数据类型[数组长度];

    · 内存图:

    · 举例:

    Int[] arr = new int[3];

    5. 在操作数组时常见的两个问题

    5.1数组索引越界异常ArrayIndexOfBoundsException

    访问到了数组中的不存在的索引(编号)时会发生这个报错。

    5.2空指针异常NullPointerException

    数组引用没有指向对象,代码却在操作数组对象中的元素时。

    6. 代码示例

    public class ArrDemo01 {

    public static void main(String[] args) {

    //1.静态初始化

    int[] arr1 = new int[]{1,2,3};

    int[] arr2 = {1,2,3};

    //2.动态初始化

    int[] arr3 = new int[3];

    arr3[0] = 1;

    arr3[1] = 2;

    arr3[2] = 3;

    //3.利用for循环进行数组的遍历

    for (int i = 0;i< arr1.length;i++){

    System.out.println(arr1[i]);

    }

    }

    }

    7. 以上所说都是一维数组,接下来讲讲二维数组

    7.1 概述

    二维数据其实就是数组中的元素是一维数组的数组。

    7.2 代码格式

    · 定义二维数组的格式:

    数据类型[][] 数组名;

    数据类型 数组名[][]; (非常不推荐使用)

    数据类型[] 数组名[]; (非常不推荐使用)

    · 二维数组的初始化格式:

    数据类型[][] 变量名 = new 数据类型[x][y];

    x: 二维数组的长度

    y: 二维数组中一维数组的长度

    数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

    简化版格式:数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};

    7.3 代码示例

    public class ArrDemo02 {

    public static void main(String[] args) {

    int[] arr1 = {1,2,3};

    int[] arr2 = {1,2,3};

    int[][] arr3 = new int[][]{arr1,arr2};

    int[][] arr4 = {arr1,arr2};

    }

    }

    展开全文
  • 一维数组是一条线 二维数组是一页纸 三维数组是一本书 四维数组是书架 五维数组是图书室2201(好几个书架) 六维数组是图书馆某一层,2楼/3楼,好几个图书室 七维数组是整个图书馆 第N维数组是...

    以图书馆来举例

     

    一维数组是一条线

    二维数组是一页纸

     

    三维数组是一本书

    四维数组是书架

     

    五维数组是图书室2201(好几个书架)

     

    六维数组是图书馆某一层,2楼/3楼,好几个图书室

    七维数组是整个图书馆

    第N维数组是宇宙.........................

     

     

     

    展开全文
  • 一维数组二维数组:Partition 一维数组二维数组/二维数组变形:ArrayReshape 转一维数组:Flatten 分块矩阵合并:ArrayFlatten 使用方法例: Partition[{a,b,c,d,e,f},2] ArrayReshape[{a,b,c,d,e,f},{2,3...

    一维数组转二维数组:Partition

    一维数组转二维数组/二维数组变形:ArrayReshape

    转一维数组:Flatten

    分块矩阵合并:ArrayFlatten

    使用方法例:

    Partition[{a,b,c,d,e,f},2]
    ArrayReshape[{a,b,c,d,e,f},{2,3}]
    ArrayReshape[{1,2,3,4,5,6,7},{5,3},0]
    Flatten[{{a,b},{c,{d},e},{f,{g,h}}}]
    m={{1,2},{3,4}};
    ArrayFlatten[{{m,m,m},{m,m,m}}]

     

    展开全文
  • 二维数组和二维数组名

    千次阅读 2018-06-26 05:50:40
    二维数组和二维数组名   对于一位数组我们认识到其数据元素在内存中是按线性顺序依次排列的,且一维数组名的值是一个指针常量。那么二维数组在内存中又是怎么存储的,其数组名又有什么含义呢?   定义一个二维...
  • C#一维数组二维数组

    千次阅读 2017-07-28 11:04:23
    C#一维数组二维数组
  • 维数组和二维数组内存示意图

    千次阅读 2016-03-21 00:00:29
    一维数组内存示意图 二维数组内存示意图 class Array2Demo { public static void main(String[] args) { int[] arr = new int[3]; System.out.println(arr);//[I@1fb8ee3 @左边是实体的类型。 @右边是实体的...
  • JavaScript一维数组二维数组

    千次阅读 2018-12-26 10:02:50
    JavaScript一维数组二维数组 当接收到一个数组时后端不一定会给你做太多处理,而我们需要的是一个多维的数组,这个时候,我们就需要将一维数组进行转换 第一种情况:数组里面是字符串的时候 let array = [1, 2, 3...
  • 一维数组和二维数组中的数据类型

    千次阅读 2018-04-16 23:00:23
    维数组和二维数组的数据类型一、一维数组 int arr[4]; 在上述语句中,arr,arr+1,arr[0]的数据类型都是什么呢? 二、二维数组 由一维数组中研究的对象我们可以推导在二维数组中研究的对象 ...
  • Python输入数组(一维数组二维数组

    万次阅读 多人点赞 2018-08-09 20:14:34
    一维数组: arr = input("") //输入一个一维数组,每个数之间使空格隔开 num = [int(n) for n in arr.split()] //将输入每个数以空格键隔开做成数组 print(num) //打印数组 一维数组输入输出示例:  ...
  • 因项目需要,要把两个一维的数组一一对应地转化为二维的,之后,在对合成的二维数组进行...//合并一维数组二维数组 function array_hebing(arr1,arr2){ var result = new Array(); for(var i=0;i;i++){ resu
  • C语言一维数组和二维数组的使用

    千次阅读 2015-01-18 22:25:21
    C语言一维数组和二维数组的使用。
  • 一维数组和二维数组比较二、二维数组#include &lt;stdio.h&gt;void Show(int (*arr)[4] , int row ,int col){ for (int i = 0 ; i&lt;row ; i++)//遍历行 { for (int j = 0 ; j&lt;col ; j++)/...
  • C# json 一维数组 二维数组的转换

    千次阅读 2015-08-27 10:41:46
    1.首先你要下载一个HttpHelper 下载地址:...3.例子如下: 一维数组 解析:JObject newobj = JObject.Parse(json);例: newobj["字段名"].ToString();说明:一维数组不需要循环...
  • Shell一维数组和二维数组

    千次阅读 2018-04-21 11:48:08
    一维数组Shell下定义一维数组的形式是A=(element1 element2 element3 .... element4),然后依次按照A[0] 、A[1]…A[n]来分别读取数组里的内容。例如:array_name=(value0 value1 value2 value3)或者array_name=...
  • 技术篇--一维数组和二维数组的比较

    千次阅读 2018-04-12 22:50:45
    一维数组二维数组
  • 二维数组的嵌套并非三维数组 2 数组的嵌套写法 1维数组的嵌套:arr(m)(i) 2维数组的嵌套:arr(m)(i,j) Sub test1001() Debug.Print "测试一维数组和其嵌套" '一维数组 arr1 = Array(1, 3, 5, 7, 9) arr2 = ...
  • 一维数组二维数组

    千次阅读 2018-08-15 16:17:12
    在项目上,会遇到将一个一维数组的数据,按板块的分布排版这一类的需求。这种需求的数据往往就是数组元素中含有相同字段,以这相同字段分类即可达到需求。 以以下数据为例: 将 let oldArr= [ { name: "...
  • 一维数组转化为二维数组 使用场景举例:接口返回一个...同时通过设定的长度,决定二维数组中的元素个数,但是一维数组的长度由总个数设定的长度共同决定的。 Math.floor floor() 方法返回小于等于x的最大整数。...
  • js一维数组二维数组

    万次阅读 多人点赞 2018-05-24 13:47:27
    使用场景举例:接口返回个数组对象,展示时每行固定显示n个,则可将返回的数组转成二维数组[[...n], [...n]...]的形式循环展示。a.数组元素为基本类型: let baseArray = [1, 2, 3, 4, 5, 6, 7, 8]; len len = ...
  • 一维数组和二维数组的维度方法

    千次阅读 2017-10-25 19:52:48
    一维数组大小的求法和二维数组大小的求法
  • 求大神指点java中一维数组和二维数组的区别,为什么位数组是二维数组可以定义多行
  • 用new创建多维数组时,最后需要用delete,但是我在delete时遇到了麻烦,实在不能再浪费...一维数组 int a[4] ={1,2,3,4}; 二维数组 int b[3][4] = {1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4} 三维数组 int c[2][3][4] = {
  • 一维数组和二维数组矩阵乘法

    千次阅读 2014-11-23 16:19:13
    //二维数组存储矩阵乘法 void multi(int a[3][3], int b[3][2]){ for (int i=0;i;i++) //i代表a矩阵的行数 { for (int j=0;j;j++) //j代表b矩阵的列数 { for (int k=
  • 我定义 int num=20000; string[,] str2=new str[20,num]; for(int i=0;i;... 这里该怎么写,我要将str1放入str2[i, ]中,就是将20个一维数组组合成了二维数组,请求大神帮忙 }
  • 一维数组和二维数组的定义及用法

    万次阅读 2018-06-08 19:03:01
    一维数组的定义 类型说明符 数组名 [常量表达式]; 在此说明:常量表达式必须是常量常量符号。常量表达式定义了数组的长度。在宏定义中#define定义一个符号常量,则这个符号常量可以用来声明数组的个数 #define...
  • Java一维数组和二维数组的长度

    千次阅读 2019-05-18 15:10:14
    Java数组长度 一维数组 int[] arry = {2, 3, 1, 0, 2, 5}; //长度 int len = arry.length; 二维数组 int array[][] = { {1, 4, 7, 11, 15}, {2, 5, 8, 12, 19}, {3, 6, 9, 16, 22},...
  • 二维数组的输入 n=int(input()) a=[] for _ in range(n): a.append(list(map(int,input().split(' ')))) print(a) 一维数组的输入 ########一维数组的输入3 a=list(map(int,input().split(' '))) print(a) ...
  • c++用指针遍历一维数组和二维数组

    千次阅读 2016-12-01 22:28:33
    //统计个字符数组里面字符出现个数 void main(){ char str1[100], temp; cin.getline(str1,100); cin >> temp;  int count = 0; for (char *P; p if (*p == temp)count++; } cout system("pause"); }
  • 【C语言】一维数组和二维数组

    千次阅读 2018-04-18 00:19:16
    一维数组:类型名 数组名[元素个数],其中在书写时,元素个数可省略,系统会自行判断。     二维数组:本质上是以数组作为数组元素的数组,即“数组的数组”   类型说明符 数组名[常量表达式][常量表达式] ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 433,402
精华内容 173,360
关键字:

一维数组和二维数组的特点