精华内容
下载资源
问答
  • 二维数组的初始化

    2020-05-26 20:04:35
    在使用二维数组arr时候,如果二维数组没有初始化, 进行下标运算时候,很容易内存泄漏; 在C语言中对二维数组进行初始化 int n = 6; int arr[n][n]; //这样初始化不可以,语法错误 #define N 6 int arr[N]; //...

    在使用二维数组arr的时候,如果二维数组没有初始化, 进行下标运算的时候,很容易内存泄漏;

    一、 在C语言中对二维数组进行初始化

    int n = 6;
    int arr[n][n];	//这样初始化不可以,语法错误
    

    下面方式初始化数组, 子函数调用时候arr[i][j] 会出现内存泄漏

    #define N 6
    int arr[N][N];	//这样初始化可以,但是N的值不能随输入变化而变化
    
    //使用堆分配二维数组
    int n = 10;
    int **arr = (int **)malloc(sizeof(int *) * n);
    for(int i = 0; i < n; i++){
    	arr[i] = (int *)malloc(sizeof(int) *n));
    }
    

    二、 C++ 中初始化二维数组

    #include <vector>
    vector<vector<int>> arr(n, vector<int>(n));
    
    
    展开全文
  • 二维数组的初始化和遍历等通过二维数组计算若干个班级若干个学生的平均分。public class Main {public static void main(String[] args) {// 使用二维数组计算若个个个班学生的平均分// 先输入有多少个班,在分别...

    二维数组的初始化和遍历等

    通过二维数组计算若干个班级若干个学生的平均分。

    public class Main {

    public static void main(String[] args) {

    // 使用二维数组计算若个个个班学生的平均分

    // 先输入有多少个班,在分别输入每个班中每个人的分数,最后计算平均分(成绩类型为int)

    Scanner in = new Scanner(System.in);

    // 确定班级个数

    System.out.print("你们总共有几个班?");

    int classCount = in.nextInt();

    // 创建二维数组

    int[][] arr = new int[classCount][];

    // 输入每个班有多少人

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

    System.out.format("第%d个班有多少人?", i + 1);

    int peopleNum = in.nextInt();

    arr[i] = new int[peopleNum];

    }

    // 遍历二维数组的每一个元素,并对其进行初始化(输入每个同学的成绩)

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

    for (int j = 0; j < arr[i].length; j++) {

    System.out.format("第%d个班的第%d个学生的成绩为:", i + 1, j + 1);

    arr[i][j] = in.nextInt();

    }

    }

    // 输出二维数组中的每个元素查看一下效果

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

    for (int j = 0; j < arr[i].length; j++) {

    System.out.print(arr[i][j] + " ");

    }

    }

    // 开始计算总成绩

    // 首先定义一个总成绩变量和一个总人数变量

    int sum = 0;

    int totalPeople = 0;

    // 遍历二维数组并刷新总成绩

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

    for (int j = 0; j < arr[i].length; j++) {

    sum += arr[i][j];

    totalPeople += 1;

    }

    }

    // 计算平均数并输出

    double average = sum / totalPeople;

    System.out.printf("%d个班的平均成绩为:%.2f。",classCount, average);

    }

    展开全文
  • 引入二维数组现在有三名同学,他们分别四科成绩,假设现在存储他们的成绩,那么该用什么来存储,能够让成绩和他们每个人都对应呢? 如果建立一个数组score,它是二维的,第一维表示学生,...二维数组的初始化1.分行...

    引入二维数组

    c4b9eb55f6592841d64453a7654247db.png

    现在有三名同学,他们分别四科成绩,假设现在存储他们的成绩,那么该用什么来存储,能够让成绩和他们每个人都对应呢? 如果建立一个数组score,它是二维的,第一维表示学生,第二维表示成绩,

    例如score[1][2] 代表第一个学生的第二科成绩。

    我们成称score就是二维数组,二维数组常称为矩阵。把二维数组写成行和列的排列形式,有助于我们形象的理解二维数组的逻辑关系。

    d1870ddae28d532aedf48534884bae0d.png

    二维数组的初始化

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

    例如:

    int a[3][4]={{1,2,3,4},{1,2,3,1},{4,5,6,8}};

    这种赋值的方法较为直观,把第一个花括号的数据给第一行的元素,第二个花括号的数据赋值给第二行元素......

    2.可以将所有数据写在一个花括号里面,按数组元素内存中的排列顺序对各元素赋初值。

    例如:

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

    3.可以对部分元素赋初值

    例如:

    int a[3][4]={{1},{0},{2}};

    表示第一行第一个元素为1,其他为0,第二行所有元素为0,第三行第一个元素为2,其他为0;

    4.如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但是第二行的长度不能忽略。例如:

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

    与下面定义相同:

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

    系统会根据总个数和第二维的长度计算出第一维的长度。

    在定义时也可以只对部分元素赋初值而省略第一维的长度,但是要分赋初值。

    int a [][4]={{1},{},{2}};                          

    这种赋初值和第三中情况类似。

    5.输入赋初值

    int a[3][2];/先定义
    for(i=0;i<=3;i++) //用双重for循环赋值,i,j表示二维数组下标
    for(j=0;j<=2;j++)
    scanf("%d",&a[i][j])

    a8d1bf99cf9de699dc92c6fb50a5069c.png

    如有错误,欢迎指出!

    展开全文
  • Java 二维数组的初始化

    千次阅读 2019-05-17 21:26:52
    关于Java 二维数组的初始化

    普通初始化

    我们可以在定义的时候就直接初始化,格式如下:
    方括号的位置可以在变量名左侧或者右侧,但是据说写在变量名左侧比较正规。

    int a[][]={{1,2,3},{4,5,6},{7,8,9}};
    //or
    int [][]a={{1,2,3},{4,5,6},{7,8,9}};
    

    也可以前创建好固定大小的数组并为其分配好内存空间,程序运行过程中再为其初始化。

    import java.io.BufferedInputStream;
    import java.util.*;
    
    public class Main {
    	final static int sizeX=3,sizeY=4;
    	static int a[][]=new int[sizeX][sizeY];
    	public static void main(String[] args) {
    		Scanner cin=new Scanner(new BufferedInputStream(System.in));
    		for(int i=0;i<sizeX;i++)
    			for(int j=0;j<sizeY;j++)
    				a[i][j]=cin.nextInt();
    		cin.close();
    	}
    }
    

    利用Arrays.fill()函数

    在c/c++中,我们常用memset()函数来将数组中所有的元素都设置为指定的值,java中也有类似的Arrays.fill()函数,但是它不能直接用于初始化二维数组,我们需要为其加上一重循环。比如说,把数组a中的元素全部设置为-1,可以写成一下形式:

    for(int i=0;i<sizeX;i++)
    	Arrays.fill(a[i], -1);
    
    展开全文
  • 1.一维数组的初始化: 静态初始化: int[] a = {1,2,3,4};...2. 二维数组的初始化: 二维数组实际上就是一个一维数组,他的每个元素都是一个一维数组。 可以画一张表格,一维数组的话,表格只有一行,二...
  • 引入二维数组现在有三名同学,他们分别四科成绩,假设现在存储他们的成绩,那么该用什么来存储,能够让成绩和他们每个人都对应呢? 如果建立一个数组score,它是二维的,第一维表示学生,...二维数组的初始化1.分行...
  • 主要介绍了Java编程中二维数组的初始化和基本操作实例,是Java入门学习中的基础知识,需要的朋友可以参考下
  • 二维数组的初始化必须在声明的时候进行。否则会报错。 比如,你应该在声明它的时候就立即赋值: unsigned char bitmap[16][17]={{0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0},  {0,0,0,0,0,0,0,0,0,0,0,0,0,255...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,637
精华内容 2,254
关键字:

二维数组的初始化