C 二维数组

作者: 2010jing | 来源:发表于2016-06-15 23:03 被阅读55次

上一章的数组可以看作是一行连续的数据,只有一个下标,称为一维数组。
但是在实际问题的解决是需要是二维的或多维的,因此C语言允许构造多维数组。
多维数组元素有多个下标,以确定它在数组中的位置。

形式是:
dataType arrayName[length1][length2];
dataType 为数据类型,
arrayName 为数组名,
length1 为第一维下标的长度,
length2 为第二维下标的长度。

一维的定义:
int a[10];

二维的定义:
int a[3][4];

定义了一个3行4列的数组,共有3×4=12个元素,数组名为a,即:
a[0][0], a[0][1], a[0][2], a[0][3]
a[1][0], a[1][1], a[1][2], a[1][3]
a[2][0], a[2][1], a[2][2], a[2][3]

在二维数组中,要定位一个元素,必须给出一维下标和二维下标。
例如,a[2][3] 表示a数组第3行第4列的元素。

理论太多,不如上个例子
一个group内有5个学生,有3门课,记录着每个人的成绩。求每个科目的平均分。

1.png
#include <stdio.h>
int main(){
    int i, j;  //二维数组下标
    int sum=0;  //当前科目的总成绩
    int average;  //总平均分
    int v[3];  //各科平均分
    int a[5][3];  //用来保存每个同学各科成绩的二维数组
    printf("Input score:\n");
    for(i=0; i<3; i++){
        for(j=0; j<5; j++){
            scanf("%d", &a[j]);  //输入每个同学的各科成绩
            sum+=a[j];  //计算当前科目的总成绩
        }
        v=sum/5;  // 当前科目的平均分
        sum=0;
    }
    printf("Swift: %d\nJava: %d\nPython: %d\n", v[0], v[1], v[2]);
    return 0;
}

运行结果:

Input score:
80
61
59
85
76
75
65
63
87
77
92
71
70
90
85
Swift: 72
Java: 73
Python: 81

二维数组初始化
上面例子成绩初始化可以写成这样

 int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };

对于二维数组初始化赋值还有以下说明1) 可以只对部分元素赋初值,未赋初值的元素自动取0值。
例如:

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

是对每一行的第一列元素赋值,未赋值的元素取0值。 赋值后各元素的值为:

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

赋值后的元素值为:

0  1  0
0  0  2
3  0  0
  1. 如对全部元素赋初值,则第一维的长度可以不给出。
    例如:
int a[3][3]={1,2,3,4,5,6,7,8,9};

可以写为:

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

相关文章

  • 排位赛 13 题解

    排位赛 13 题解 题型 A - 贪心 √ B - 后缀数组 √ C - 环形DP D - 二维树状数组/二维线段...

  • C语言的指针与数组(进阶篇之二)

    二、二维数组与指针 (1).二维数组元素在内存中的存放方式C语言中,二维数组元素值在内存中是线性的。跟一维数组相差...

  • C/C++二维数组

    1.创建二维数组 C/C++中,其实根本不存在二维数组这样一种数据类型,它其实是数组元素同样为数组的等效,因此我们...

  • 04.C(数组字符串和函数)

    1.水仙花数 2.二维数组 3.二维数组赋值 4.输出二维数组的值 这里存在数组越界的情况,但是c 与 Java不...

  • iOS中的二维数组

    首先我们知道OC中是没有二维数组的,二维数组是通过一位数组的嵌套实现的,但是别忘了我们有字面量,实际上可以和C/C...

  • C语言 第六章 数组

    [TOC] 第六章 数组 数组求斐波那契数列 二维数组定义初始化 二维数组初始化方式 例题 选c 定义一个char...

  • 2019-02-28 计算机二级C语言程序设计之数组(下)

    参考资料:高教版《全国计算机等级考试二级教程——C语言程序设计》《21天学通C语言》 二维数组的定义和二维数组元素...

  • Day08

    二维数组 二维数组格式 二维数组初始化 二维数组的遍历 二维数组内存存储细节 二维数组与函数注意点: 主要是看函数...

  • 俄罗斯套娃程序

    题目: C++: 注意对int **二维数组的使用, 基数排序.

  • 静心沉淀,厚积薄发

    今天主要是看来c语言中关于数组的知识,数组按照空间大小的不同,数组分为一维数组,二维数组,多维数组,按照元素种...

网友评论

    本文标题:C 二维数组

    本文链接:https://www.haomeiwen.com/subject/msfmdttx.html