精华内容
下载资源
问答
  • 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’在内
    在这里插入图片描述

    展开全文
  • 今天小编就为大家分享一篇Python3实现将一维数组按标准长度分隔为二维数组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 将多个不同长度一维数组存入二维数组时,需要将所有一维数组长度转为相同长度,可以采用在数组后边补零的方式实现。 如果a是行向量,M是你要的最终向量的长度,用 a=[a , zeros(1,M-length(a))]; 如果a是列向量...
    将多个不同长度的一维数组存入二维数组时,需要将所有一维数组的长度转为相同长度,可以采用在数组后边补零的方式实现。
    
    如果a是行向量,M是你要的最终向量的长度,用
    a=[a , zeros(1,M-length(a))];
    如果a是列向量,改成
    a=[ a ; zeros(M-length(a),1)];

     

    转自:

    https://blog.csdn.net/wangh0802/article/details/80719794

    表示感谢!!

    展开全文
  • C++一维数组 定义一维数组 定义一维数组的一般格式为:  类型标识符 数组名[常量表达式]; 例如: int a[10]; 它表示数组名为a,此数组为整型,有10个元素。 关于一维数组的几点说明: 1) 数组名定名规则和变量...
  • 使用场景举例:接口返回一个数组对象,展示时每行固定显示n个,则可将返回的数组转成二维数组[[…n], […n]…]的形式... //一维数组二维数组长度(此处是二维数组每一个长度控制) for (var i = 0; i < Math....

    使用场景举例:接口返回一个数组对象,展示时每行固定显示n个,则可将返回的数组转成二维数组[[…n], […n]…]的形式循环展示。

    function oneArrToTwoArr(data) {
        var newData = [];
        var zyf = 3;  //一维数组转二维数组长度(此处是二维数组每一个长度控制)
        for (var i = 0; i < Math.ceil(data.length / zyf); i++) {
            newData[i] = [];
            newData[i].push(data[i * zyf]);
            for (var j = 1;j < zyf;j++){
                if (data[i * zyf + j] == undefined){ //超出长度控住
                    return newData;
                } else{
                    newData[i].push(data[i * zyf + j]);
                }
    
            }
        }
        return newData;
    }
    

    运行调试

    var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19];
    var newArr = oneArrToTwoArr(arr)
    console.log(newArr)
    

    在这里插入图片描述

    展开全文
  • Java一维数组二维数组详解API

    千次阅读 2019-03-12 12:24:06
    所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素...数组是用于储存多个相同类型数据的集合,数组有一维数组二维数...

    所谓数组,是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。

    数组是用于储存多个相同类型数据的集合,数组有一维数组,二维数组,多维数组等

    一维数组的初始化和定义

    //动态初始化
    int[] arr = new int[3];
    arr[0] = 100;
    arr[1] = 200;
    arr[2] = 300;
    
    
    //静态初始化
    int[] arr = {100,200,300};
    int[] arr1 = new int[]{100,200,300};
    
    //默认赋值初始化
    int[] array = new int[10];
    
    //获取数组的长度
    int[] arr = new int[10];
    int length = arr.length;
    System.out.println("数组长度:"+length);
    
    

    二维数组的定义以及如何初始化

    //动态初始化
    int[][] arr = new int[3][3];
    arr[0][1] = 100;
    arr[1][1] = 200;
    arr[2][1] = 300;
    
    
    //静态初始化
    int[][] arr = {{100,200,300},{100,200,300}};
    
    
    //默认赋值初始化
    int[][] array = new int[][]{{100,200,300},{100,200,300}};
    
    
    //不定长二维数组的定义如下:
    int[][] array = new int[3][];
    array[0] = new int[1];
    array[1] = new int[2];
    array[2] = new int[3];
    
    //获取二维数组的长度
    int length1 = array.length;
    int length2 = array[0].length;
    // 获取二维数组的第一维长度(3)
    System.out.println(length1);
    // 获取二维数组的第一维的第一个数组长度(1)
    System.out.println(length2);
    
    
    
    

    数组遍历请看我的上一篇文章(https://blog.csdn.net/qq_24434671/article/details/88414699

    数组的常用API及用法

    //数组输出为字符串
    int[] array = { 1, 2, 3 };
    System.out.println(Arrays.toString(array));
    
    //数组转Set集合
    String[] array = { "a", "b", "c", "d", "e" };
    Set set = new HashSet(Arrays.asList(array));
    
    //数组转List集合
    String[] array = { "a", "b", "c", "d", "e" };
    List list = new ArrayList(Arrays.asList(array));
    
    //List集合转数组
    List list = new ArrayList();
    list.add("a3");
    list.add("b4");
    list.add("c5");
    String[] array = new String[list.size()];
    list.toArray(array);
    for (String s : array){
        System.out.println(s);
    }
    
    
    //判断数组中是否包含某个值
    String[] array = { "a", "b", "c", "d", "e" };
    boolean b = Arrays.asList(array).contains("a");
    if(b){
       //包含
    }else{
      //不包含
    }
    
    //两个数组合并成一个
    int[] array1 = { 1, 2, 3, 4, 5 };
    int[] array2 = { 6, 7, 8, 9, 10 };
    int[] array = org.apache.commons.lang.ArrayUtils.addAll(array1, array2);
    System.out.println(Arrays.toString(array));
    
    
    //String数组转字符串
    String[] array = { "a", "b", "c" };
    String str = org.apache.commons.lang.StringUtils.join(array, ", ");
    System.out.println(str);
    
    //数组逆序
    int[] array = { 1, 2, 3, 4, 5 };
    org.apache.commons.lang.ArrayUtils.reverse(array);
    System.out.println(Arrays.toString(array));
    
    
    //数组元素移除
    int[] array = { 1, 2, 3, 4, 5 };
    int[] removed = org.apache.commons.lang.ArrayUtils.removeElement(array, 3);
    System.out.println(Arrays.toString(removed));
    
    //利用for循环对数组元素进行移除
      
    public static void main(String[] args) {
    	//定义一个数组
    	int[] arr = {1,2,3,4};
    	//删除其中某个元素并且打印在控制台
    	printArray(deleteArrElement(arr,2));
    }
    	
    	
    	/**
    	 * 打印数组
    	 * @param arr
    	 */
    	public static void printArray(int[] arr) {
    		for (int i : arr) {
    			System.out.print(i+"\t");
    		}
    	}
    	
    	/***
    	 * 对数组指定元素进行删除,并且返回删除后的数组
    	 * @param arr
    	 * @param element
    	 * @return
    	 */
    	public static int[] deleteArrElement(int[] arr,int element) {
    		int[] tmp = new int[arr.length-1];
    		int n = 0;
    		for(int i=0;i<arr.length;i++) {
    			if(arr[i] != element) {
    				tmp[n++] = arr[i];
    			}
    		}
    		return tmp;
    	}

    以上为数组的常用用法和用途,如有错误请大佬指出,如需讨论技术可以私聊我。

    展开全文
  • 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},...
  • 一维数组转化为二维数组 使用场景举例:接口返回一个...同时通过设定的长度,决定二维数组中的元素个数,但是一维数组长度由总个数和设定的长度共同决定的。 Math.floor floor() 方法返回小于等于x的最大整数。...
  • 一维数组按指定长度转为二维数组

    千次阅读 2018-12-14 15:56:02
    一维数组按指定长度,转为二维数组 original: l = [1, 2, 3, 4, 5, 6] aid: l = [[1, 2, 3], [4, 5, 6]] def transform_array(l, length): r = [] m = [] for i in range(len(l)): m.append(l[i])...
  • 【C语言】一维数组二维数组

    千次阅读 2017-07-10 09:43:54
    一维数组二维数组
  • 1:一维数组: int a[5]; &a是数组的地址,故&a + 1是加一个数组大小的长度。增加20个字节。 p2=&a 由于p2是指向具有10个整型元素数组的指针,所以p2+1所指向的下一个元素,所以p2+1所指的下一个元素,就是跳过这...
  • 一维数组二维数组

    千次阅读 2018-08-15 16:17:12
    在项目上,会遇到将一个一维数组的数据,按板块的分布排版这一类的需求。这种需求的数据往往就是数组元素中含有相同字段,以这相同字段分类即可达到需求。 以以下数据为例: 将 let oldArr= [ { name: "...
  • JAVA 数组 一维数组二维数组

    千次阅读 2016-05-28 14:43:28
    一维数组知识点 // 定义一个a数组 int[] a = new int[]{3, 4 , 5, 6}; // 定义一个a2数组 int[] a2 = new int[]{3, 4 , 5, 6}; // a数组和a2数组的长度相等,每个元素依次相等,将输出true System.out.println("a...
  • Java数组介绍(一维数组二维数组

    千次阅读 多人点赞 2018-06-08 16:00:55
    Java数组介绍(一维数组二维数组)1. 概述· 数组是存储多个变量的容器。· 存储的多个变量必须是同一种数据类型。· 数组既可以存储基本数据类型,也可以存储引用数据类型。2. 数组定义的格式· 格式1:数据...
  • 一维数组下标为index,二维数组长度为m * n,则: 一维数组转换为二维数组 row = index / n col = index % n 二维数组转换为一维数组 index = col + row * n
  • let arr1 = ['a','b','c','d','e','f','g']; const chunk =(arr,chunkLength)=>{ const newArr = []; const len = arr.length; newArr[0] = arr.slice(0,chunkLength); for(let i = chunkLength;...i+...
  • 一维数组二维数组、字符串总结

    千次阅读 2017-07-12 19:20:05
    一维数组主要在高精度计算上,所谓高精度计算,也就是模拟计算过程,然后就没有什么了…… 然后是二维数组 二维数组就是坐标系,难点在坐标的变化上: //1顺时针旋转90度 for(j=1;jn;j++) for(i=1;in;i++) ...
  • C语言二维数组转化为一维数组

    千次阅读 2019-11-08 12:13:50
    C语言二维数组转化为一维数组 #include <stdio.h> #include <stdlib.h> #define A 2 //行的长度 #define B 2 //列的长度 int main() { //定义一个二维数组 int array1[A][B]={1,2,3,4}; //定义一个...
  • 在一个二维数组中(每个一维数组长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。   #...
  • 维数组和二维数组内存示意图

    千次阅读 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 @左边是实体的类型。 @右边是实体的...
  • // // main.cpp // 二维数组 // 1.一个二维数组就像是若干个相同的数组放在一起,这对于存储多组...处理二维数组的时候直接当作一维数组就可以了每一行都是一个一维数组。 // 5.二维数组在存储的时候,是按照一行...
  • 1.解析一维数组的创建和初始化 2.一维数组的使用 3.一维数组的存储 4.一维数组的指针访问 5.解析二维数组的创建和初始化 6.二维数组的使用 7.二维数组的存储 8.二维数组的指针访问
  • 二维数组长度

    千次阅读 2018-04-13 14:25:18
    例如数组 array[][];array.length 第一维长度array[0].length 第二维长度(当然这个array数组中要有元素,不然取array[0]就会报错的)
  • 一维数组转换为二维数组

    千次阅读 2018-12-15 17:05:18
    实际实现:将原本的一维数组转换为二维数组,数组里面的每个元素为一个length为3的数组.在进行轮播的时候,循环两次进行输出 data(){ return{ hasWinArr:[],//一个一维数组 } }, methods:{ //处理假数据轮播图 ...
  • js一维数组转化为二维数组

    千次阅读 2018-06-02 17:53:02
    有一个一维数组a,想转化为二维数组b,并且二位数组b每个元素都是长度为3的一维数组(不包括最后一项),实现方法:var a = [0,1,2,3,4,5,6,7,8,9,10,11,12,13];var b = new Array(Math.ceil(a.length/3));for(var i...
  • def trans_data_to_pair(self,...经过漫长研究,终于让我弄出来了,记录一下,这样短短的行代码让我研究好几个小时,气死了 习惯了使用Java,用Python编程,感觉很别扭,加油吧,革命尚未成功,同志任需努力

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 164,617
精华内容 65,846
关键字:

一维数组二维数组长度怎么计算