C 二维数组

上一章的数组可以看作是一行连续的数据,只有一个下标,称为一维数组。
但是在实际问题的解决是需要是二维的或多维的,因此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};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 4,007评论 2 13
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,473评论 3 44
  • 谨记 每个人心中都有一片海,自己不扬帆,没人帮您启航,久了就是一片死海。人生,就是一场自己与自己的较量:让积极打败...
    长风留言阅读 8,007评论 6 10
  • 在实际的项目开发中,二维数组也是常常用到的数据结构。OC中的二维数组也是通过一维数组来建立的,今天我们来详解一下如...
    写代码的八爪鱼阅读 2,741评论 0 0
  • 可以通过点击官方链接查看详细信息 官方提供的API列表如下: interfaces– Core gensim in...
    Midorra阅读 2,551评论 0 0