精华内容
下载资源
问答
  • 2021-05-18 13:14:09

    C语言二维数组的定义和引用

    C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面是小编分享的C语言二维数组的定义与引用,欢迎大家参考!

    C语言二维数组的定义和引用

    一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量。本节只介绍二维数组,多维数组可由二维数组类推而得到。

    二维数组的'定义

    二维数组定义的一般形式是:

    类型说明符 数组名[常量表达式1][常量表达式2]

    其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。例如:

    int a[3][4];

    说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:

    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]

    二维数组在概念上是二维的,即是说其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。

    在C语言中,二维数组是按行排列的。即,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为int类型,该类型占两个字节的内存空间,所以每个元素均占有两个字节。

    二维数组元素的引用

    二维数组的元素也称为双下标变量,其表示的形式为:

    数组名[下标][下标]

    其中下标应为整型常量或整型表达式。例如:

    a[3][4]

    表示a数组三行四列的元素。

    下标变量和数组说明在形式中有些相似,但这两者具有完全不同的含义。数组说明的方括号中给出的是某一维的长度,即可取下标的最大值;而数组元素中的下标是该元素在数组中的位置标识。前者只能是常量,后者可以是常量,变量或表达式。

    【例7-6】一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。--张王李赵周

    Math8061598576

    C7565638777

    Foxpro9271709085

    可设一个二维数组a[5][3]存放五个人三门课的成绩。再设一个一维数组v[3]存放所求得各分科平均成绩,设变量average 为全组各科总平均成绩。编程如下:

    #include int main(void){ int i,j,s=0,average,v[3],a[5][3]; printf("input score

    "); for(i=0;i<3;i++){ for(j=0;j<5;j++){ scanf("%d",&a[j][i]); s=s+a[j][i]; } v[i]=s/5; s=0; } average =(v[0]+v[1]+v[2])/3; printf("math:%d

    c languag:%d

    dbase:%d

    ",v[0],v[1],v[2]); printf("total:%d

    ", average ); return 0;}

    程序中首先用了一个双重循环。在内循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来,退出内循环后再把该累加成绩除以5送入v[i]之中,这就是该门课程的平均成绩。外循环共循环三次,分别求出三门课各自的平均成绩并存放在v数组之中。退出外循环之后,把v[0]、v[1]、v[2]相加除以3即得到各科总平均成绩。最后按题意输出各个成绩。

    二维数组的初始化

    二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行连续赋值。

    例如对数组a[5][3]:

    按行分段赋值可写为:

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

    按行连续赋值可写为:

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

    这两种赋初值的结果是完全相同的。

    【例7-7】求各科平局分和总成绩平均分。

    #include int main(void){ int i,j,s=0, average,v[3]; int a[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}}; for(i=0;i<3;i++){ for(j=0;j<5;j++) s=s+a[j][i]; v[i]=s/5; s=0; } average=(v[0]+v[1]+v[2])/3; printf("math:%d

    c languag:%d

    dFoxpro:%d

    ",v[0],v[1],v[2]); printf("total:%d

    ", average); return 0;}

    对于二维数组初始化赋值还有以下说明:

    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

    2) 如对全部元素赋初值,则第一维的长度可以不给出。例如:

    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};

    3) 数组是一种构造类型的数据。二维数组可以看作是由一维数组的嵌套而构成的。设一维数组的每个元素都又是一个数组,就组成了二维数组。当然,前提是各元素类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组。C语言允许这种分解。

    如二维数组a[3][4],可分解为三个一维数组,其数组名分别为:

    a[0]

    a[1]

    a[2]

    对这三个一维数组不需另作说明即可使用。这三个一维数组都有4个元素,例如:一维数组a[0]的元素为a[0][0],a[0][1],a[0][2],a[0][3]。必须强调的是,a[0],a[1],a[2]不能当作下标变量使用,它们是数组名,不是一个单纯的下标变量。

    【C语言二维数组的定义和引用】相关文章:

    更多相关内容
  • 二维数组定义的一般形式是: dataType arrayName[length1][length2]; 其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。 我们可以将二维数组看做一个 ...

    二维数组的定义

    二维数组定义的一般形式是:

    dataType arrayName[length1][length2];
    

    其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。

    我们可以将二维数组看做一个 Excel 表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。例如:

    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]
    

    如果想表示第 2 行第 1 列的元素,应该写作a[2][1]。
    也可以将二维数组看成一个坐标系,有 x 轴和 y 轴,要想在一个平面中确定一个点,必须同时知道 x 轴和 y 轴。

    二维数组在概念上是二维的,但在内存中是连续存放的;换句话说,二维数组的各个元素是相互挨着的,彼此之间没有缝隙。那么,如何在线性内存中存放二维数组呢?有两种方式:
    一种是按行排列, 即放完一行之后再放入第二行;
    另一种是按列排列, 即放完一列之后再放入第二列。

    在C语言中,二维数组是按行排列的。也就是先存放 a[0] 行,再存放 a[1] 行,最后存放 a[2] 行;每行中的 4 个元素也是依次存放。数组 a 为 int 类型,每个元素占用 4 个字节,整个数组共占用 4×(3×4)=48 个字节。

    你可以这样认为,二维数组是由多个长度相同的一维数组构成的。

    【实例1】一个学习小组有 5 个人,每个人有 3 门课程的考试成绩,求该小组各科的平均分和总平均分。
    在这里插入图片描述
    对于该题目,可以定义一个二维数组 a[5][3] 存放 5 个人 3 门课的成绩,定义一个一维数组 v[3] 存放各科平均分,再定义一个变量 average 存放总平均分。最终编程如下:

    #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][i]);//输入每个同学的各科成绩
                sum += a[j][i];//计算当前科目的总成绩
            }
            v[i] = sum / 5;//当前科目的平均分
            sum = 0;
        }
        average = (v[0] + v[1] + v[2]) / 3;
        printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);
        printf("Total: %d\n", average);
        return 0;
    }
    

    在这里插入图片描述
    程序使用了一个嵌套循环来读取所有学生所有科目的成绩。在内层循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来,退出内层循环(进入外层循环)后再把该累加成绩除以 5 送入 v[i] 中,这就是该门课程的平均分。外层循环共循环三次,分别求出三门课各自的平均成绩并存放在数组 v 中。所有循环结束后,把 v[0]、v[1]、v[2] 相加除以 3 就可以得到总平均分。

    二维数组的初始化(赋值)

    二维数组的初始化可以按行分段赋值,也可按行连续赋值。

    例如,对于数组 a[5][3],按行分段赋值应该写作:

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

    按行连续赋值应该写作:

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

    这两种赋初值的结果是完全相同的。

    【实例2】和“实例1”类似,依然求各科的平均分和总平均分,不过本例要求在初始化数组的时候直接给出成绩。

    #include <stdio.h>
    int main()
    {
        int i, j;//二维数组下标
        int sum = 0;//当前科目的总成绩
        int average;//总平均分
        int v[3];//各科平均分
        int a[5][3] = {{80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85}};
        for(i=0; i<3; i++)
        {
            for(j=0; j<5; j++)
            {
                sum += a[j][i];//计算当前科目的总成绩
            }
            v[i] = sum / 5;//当前科目的平均分
            sum = 0;
        }
        average = (v[0] + v[1] + v[2]) / 3;
        printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);
        printf("Total: %d\n", average);
        return 0;
    }
    

    在这里插入图片描述

    对于二维数组的初始化还要注意以下几点

    1、 可以只对部分元素赋值,未赋值的元素自动取“零”值。例如:

    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
    

    2、如果对全部元素赋值,那么第一维的长度可以不给出。例如:

    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};
    

    3、二维数组可以看作是由一维数组嵌套而成的;如果一个数组的每个元素又是一个数组,那么它就是二维数组。当然,前提是各个元素的类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组,C语言允许这种分解。

    例如,二维数组a[3][4]可分解为三个一维数组,它们的数组名分别为 a[0]、a[1]、a[2]。

    这三个一维数组可以直接拿来使用。这三个一维数组都有 4 个元素,比如,一维数组 a[0] 的元素为 a[0][0]、a[0][1]、a[0][2]、a[0][3]。

    展开全文
  • C语言 二维数组定义和使用 - C语言零基础入门教程

    千次阅读 多人点赞 2021-08-22 15:13:10
    1.定义二维数组 2.初始化二维数组 三.访问二维数组 四.修改二维数组 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.二维数组简介 在 C 语言中,一组数据的集合称为数组 ...

    目录

    零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

    一.二维数组简介

    C 语言中,一组数据的集合称为数组 Array ,也称为一维数组,比如:字符串 char ,实际上也算是数组,字符串由多个字符构成;

    而二维数组和一维数组类似,简单理解就是:二维数组由多个一维数组构成,语法如下:

    type arrayName [ x ][ y ];
    //x的取值范围:0 <= index < x   下标重0开始,最大值为x-1,否则会产生下标越界
    //y的取值范围:0 <= index < y   下标重0开始,最大值为y-1,否则会产生下标越界
    

    因此,数组中的每个元素是使用形式为 a[ i , j ] 的元素名称来标识的,其中 a 是数组名称,i 和 j 是唯一标识 a 中每个元素的下标。

    二维数组中的每一个数据叫做数组元素 Element ,二维数组中的每个元素都有一个序号,这个序号由 xy 组成(即横向坐标和纵向坐标),都是从 0 开始,例如,a[0][6] 表示第1行第7个元素,a[3][1] 表示第 4 行第2个元素;

    举个例子:定义一个这样的二维数组

    int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vho32HiP-1629616389974)(https://www.codersrc.com/wp-content/uploads/2021/06/e4da3b7fbbce234.png “C语言 二维数组定义和使用-猿说编程”)]

    二维数组本质就是一个一维数组。如果把二维数组的每一行看成一个整体,即看成一个数组中的一个元素,那么整个二维数组就是一个一维数组

    二.定义二维数组并初始化

    1.定义二维数组

    要想把数据放入内存,必须先要分配内存空间。例如:放入4个一维数组,8个整数,即 4 行 8 列:

    //整形数组
    int a[4][8];//由4个一维数组构成,索引值0~3;每个一维数组中有8个整形变量,索引值0~7;
    //浮点数数组
    float a[4][8];//由4个一维数组构成,索引值0~3;每个一维数组中有8个浮点数变量,索引值0~7;
    //浮点数数组
    double a[4][8];//由4个一维数组构成,索引值0~3;每个一维数组中有8个浮点数变量,索引值0~7;
    //字符串
    char a[4][8];//由4个一维数组构成,索引值0~3;每个一维数组中有8个字符变量,索引值0~7;
    

    2.初始化二维数组

    A.在定义二维数组的同时赋值

    多维数组可以通过在括号内为每行指定值来进行初始化。下面是一个带有 3 行 4 列的数组。

    int a[3][4] = {
                    {0, 1, 2, 3} ,   /*  初始化索引号为 0 的行 */
                    {4, 5, 6, 7} ,   /*  初始化索引号为 1 的行 */
                    {8, 9, 10, 11}   /*  初始化索引号为 2 的行 */
    };
    

    内部嵌套的括号是可选的,下面的初始化与上面是等同的:

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

    B.根据二维数组下标对数组元素赋值

    在通过下标修改二维数组的值时,需要注意 数组下标越界 的问题;

    a[4][2];  //定义一个二维数组
    a[0][0]=10;
    a[0][1]=20;
    a[1][0]=30;
    a[1][1]=40;
    a[2][0]=50;
    a[2][1]=60;
    a[3][0]=70;
    a[3][1]=80;
    //a[0][3]=20; //错误写法,下标越界
    //a[0][2]=20; //错误写法,下标越界
    //a[4][2]=20; //错误写法,下标越界
    等价:
    a[4][2]= {10,20,30,40,50,60,70,80}
    等价:
    a[4][2] = {
                    {10,20},
                    {30,40},
                    {50,60},
                    {70,80}
    }
    

    C.只给部分元素赋初值,当{ }中值的个数少于元素个数时,只给前面部分元素赋值,后面的元素默认为0

    //案例一
    int a[3][4] = {{1},{2},{3}};
    等价:
    int a[3][4] = {{1,0,0,0},{2,0,0,0},{3,0,0,0}};
    //案例二
    int a[3][4] = {{1}};
    等价:
    int a[3][4] = {{1,0,0,0},{0,0,0,0},{0,0,0,0}};
    

    当赋值的元素少于数组总体元素的时候,剩余的元素自动初始化为 0

    对于short、int、long,就是整数0;
    对于char,就是字符 '\0';
    对于float、double,就是小数0.0。
    

    三.访问二维数组

    **数组中的每个元素都有一个序号,这个序号从 0 开始,称为下标 index ,例如,a[0][2] 表示第 1 行第 3 个元素,a[3][5] 表示第 4 行第 6 个元素。所以我们可以直接通过下标访问数组中元素的值,**例如:

    /******************************************************************************************/
    //@Author:猿说编程
    //@Blog(个人博客地址): www.codersrc.com
    //@File:C语言教程 - C语言 二维数组定义和使用
    //@Time:2021/06/12 08:00
    //@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
    /******************************************************************************************/
    
    #include <stdio.h>
    int main(void) {
        int a[3][4] = {{1,2,3,4},{2,4,6,8},{3,6,9,0}};
        for (int i = 0 ;i<3;i++) {
            for(int j = 0;j<4;j++)
                printf("a[%d][%d] = %d  ",i,j,a[i][j]);//根据下标查询
            //换行
            printf("\n");
        }
        return 0;
    }
    /*
    输出:
    a[0][0] = 1  a[0][1] = 2  a[0][2] = 3  a[0][3] = 4
    a[1][0] = 2  a[1][1] = 4  a[1][2] = 6  a[1][3] = 8
    a[2][0] = 3  a[2][1] = 6  a[2][2] = 9  a[2][3] = 0
    */
    

    四.修改二维数组

    **我们既然可以通过数组下标访问数组的值,那么同样也可以使用下标修改数组的值,**例如:

    /******************************************************************************************/
    //@Author:猿说编程
    //@Blog(个人博客地址): www.codersrc.com
    //@File:C语言教程 - C语言 二维数组定义和使用
    //@Time:2021/06/12 08:00
    //@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
    /******************************************************************************************/
    
    #include <stdio.h>
    int main(void) {
        int a[3][4] = {{1,2,3,4},{2,4,6,8},{3,6,9,0}};
        for (int i = 0 ;i<3;i++) {
            for(int j = 0;j<4;j++)
                printf("a[%d][%d] = %d  ",i,j,a[i][j]);//根据下标查询
            //换行
            printf("\n");
        }
        printf("-------------------------------------------\n");
        //修改数组的值
        for (int i = 0 ;i<3;i++) {
            for(int j = 0;j<4;j++)
                a[i][j] *= 10 ;//等价 a[i][j] = a[i][j] * 10
            //换行
            printf("\n");
        }
        //查询修改后数组的值
        for (int i = 0 ;i<3;i++) {
            for(int j = 0;j<4;j++)
                printf("a[%d][%d] = %d  ",i,j,a[i][j]);//根据下标查询
            //换行
            printf("\n");
        }
        return 0;
    }
    /*
    输出:
    a[0][0] = 1  a[0][1] = 2  a[0][2] = 3  a[0][3] = 4
    a[1][0] = 2  a[1][1] = 4  a[1][2] = 6  a[1][3] = 8
    a[2][0] = 3  a[2][1] = 6  a[2][2] = 9  a[2][3] = 0
    -------------------------------------------
    a[0][0] = 10  a[0][1] = 20  a[0][2] = 30  a[0][3] = 40
    a[1][0] = 20  a[1][1] = 40  a[1][2] = 60  a[1][3] = 80
    a[2][0] = 30  a[2][1] = 60  a[2][2] = 90  a[2][3] = 0
    */
    

    五.猜你喜欢

    1. 安装 Visual Studio
    2. 安装 Visual Studio 插件 Visual Assist
    3. Visual Studio 2008 卸载
    4. Visual Studio 2003/2015 卸载
    5. C 语言格式控制符/占位符
    6. C 语言逻辑运算符
    7. C 语言三目运算符
    8. C 语言逗号表达式
    9. C 语言 sizeof 和 strlen 函数区别
    10. C 语言 strcpy 和 strcpy_s 函数区别
    11. C 语言 memcpy 和 memcpy_s 区别
    12. C 语言 数组定义和使用
    13. C 语言 数组遍历
    14. C 语言 数组排序 – 冒泡法排序
    15. C 语言 数组排序 – 选择法排序
    16. C 语言 数组排序 – 插入法排序
    17. C 语言 数组排序 – 快速法排序
    18. C 语言 数组下标越界
    19. C 语言 数组内存溢出
    20. C 语言 数组下标越界和内存溢出区别
    21. C 语言 二维数组定义和使用

    未经允许不得转载:猿说编程 » C 语言 二维数组定义和使用

    展开全文
  • 原标题:C语言二维数组定义二维数组定义二维数组定义的一般形式是:dataType arrayName[length1][length2];其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维...

    原标题:C语言之二维数组的定义

    二维数组的定义

    二维数组定义的一般形式是:

    dataType arrayName[length1][length2];

    其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。

    我们可以将二维数组看做一个 Excel 表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。例如:

    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]

    也可以将二维数组看成一个坐标系,有 x 轴和 y 轴,要想在一个平面中确定一个点,必须同时知道 x 轴和 y 轴。

    二维数组在概念上是二维的,但在内存中是连续存放的;换句话说,二维数组的各个元素是相互挨着的,彼此之间没有缝隙。那么,如何在线性内存中存放二维数组呢?有两种方式:

    .一种是按行排列, 即放完一行之后再放入第二行;

    .另一种是按列排列, 即放完一列之后再放入第二列。

    在C语言中,二维数组是按行排列的。也就是先存放 a[0] 行,再存放 a[1] 行,最后存放 a[2] 行;每行中的 4 个元素也是依次存放。数组 a 为 int 类型,每个元素占用 4 个字节,整个数组共占用 4*(3*4)=48个字节。

    我们来看一个程序示例:

    一个学习小组有 5 个人,每个人有 3 门课程的考试成绩,求该小组各科的平均分和总平均成绩

    #include

    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][i]);//输入每个同学的各科成绩

    sum += a[j][i];//计算当前科目的总成绩

    }

    v[i] = sum / 5;// 当前科目的平均分

    sum = 0;

    }

    average = (v[0] + v[1] + v[2]) / 3;

    printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);

    printf("Total: %d\n", average);

    return 0;

    }

    运行结果:

    Input score:

    80 61 59 85 76 75 65 63 87 77 92 71 70 90 85

    Math: 72

    C Languag: 73

    English: 81

    Total: 75

    66a8e9da9f902c60b02c5a3f0541d9dd.png

    

    程序使用了一个嵌套循环来读取所有学生所有科目的成绩。在内层循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来,退出内层循环(进入外层循环)后再把该累加成绩除以 5 送入 v[i] 中,这就是该门课程的平均分。外层循环共循环三次,分别求出三门课各自的平均成绩并存放在数组 v 中。所有循环结束后,把 v[0]、

    v[1]、v[2] 相加除以 3 就可以得到总平均分。

    二维数组的使用注意点:

    1. 可以只对部分元素赋值,未赋值的元素自动取“零”值。

    2. 如果对全部元素赋值,那么第一维的长度可以不给出

    3.二维数组可以看作是由一维数组嵌套而成的;如果一个数组的每个元素又是一个数组,那么它就是二维数组。当然,前提是各个元素的类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组,C语言允许这种分解。返回搜狐,查看更多

    责任编辑:

    展开全文
  • C语言数组——二维数组

    万次阅读 多人点赞 2020-02-07 14:58:35
    C语言目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析 ...二维数组 前面介绍了...
  • 本节学习二维数组二维数组与一维数组相似,但是用法上要比一维数组复杂一点。后面的编程中,二维数组用得很少,因为...二维数组定义二维数组定义的一般形式为:类型说明符 数组名[ 常量表达式][ 常量表达式];比...
  • 二维数组定义的一般形式是: dataType arrayName[length1][length2]; 二维数组在概念上是二维的,但在内存中是连续存放的;换句话说,二维数组的各个元素是相互挨着的,彼此之间没有缝隙。那么,如何在线性内存...
  • C语言二维数组

    多人点赞 热门讨论 2021-11-27 20:10:21
    前面的博客介绍了一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。我们在实际问题当中很多量是由二维或者是多维的,因此 C 语言允许构造了多维数组。...本片文章介绍的是二维数组
  • 二维数组怎么定义

    2021-03-23 13:34:39
    一维数组只有一个下标,称为一维数组,其数组元素也称为单下标...二维数组定义二维数组定义的一般形式是:类型说明符 数组名[常量表达式1][常量表达式2]其中常量表达式1表示第一维下标的长度,常量表达式2 表示第...
  • C++二维数组定义及理解

    万次阅读 多人点赞 2020-11-27 17:26:28
    #二维数组定义方式 #二维数组结构的含义与理解 前言 一维数组对于存储和处理一组数据很有用,但是有时候,很有必要使用多维数组。 例如,在统计学生成绩的程序中,教师可以将一个学生的所有科目考试分数记录在一个...
  • 这种常规形式的数组一般使用不过二维,并且数组名很特殊,有跟指针以及地址有密不可分的关系,但是不一样,并且它使用数据的静态存储区。... //二维数组下标int sum = 0; //当前科目的总成绩int av...
  • 二维数组定义的一般形式为类型说明符 数组名[常量表达式][常量表达式]C语言采用上述定义方法,我们可以把二维数组看做是一种特殊的一维数组:它的元素又是一维数组。在C语言中,二维数组中元素的排列顺序是:先...
  • Presentation on theme: "第7章 数组 本章要求: 1、掌握C语言数组在内存中的存储形式 2、掌握一维数组和二维数组定义及使用 3、掌握使用数组的方法"— Presentation transcript:第7章 数组 本章要求: 1、掌握...
  • 2.8.2 二维数组定义和使用当数组元素具有两...二维数组定义的一般形式是:类型说明符数组名[常量表达式1][常量表达式2];其中常量表达式1 表示***维下标的长度,常量表达式2 表示第二维下标的长度。例如:inta[2][3...
  • c语言二维数组定义一维数组只有一个下标,,称为一维数组,其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以标识它在数组中的位置,所以...
  • 二、二维数组定义 定义二维数组形式: 数据类型 数组名[常量表达式1][常量表达式2] ; 数据类型是数组全体元素的数据类型, 数组名用合法的标识符表示, 两个整型常量表达式可以理解为分别代表行数和列数, 与一维...
  • C语言二维数组及指针引用

    千次阅读 2022-04-11 15:40:58
    文章目录C语言二维数组及指针引用1.二维数组定义与表示2.用指针引用二维数组元素 C语言二维数组及指针引用 1.二维数组定义与表示 二维数组是形如: 表示一个int类型,三行四列的数组 int a[3][4]={1,2,3,4,5,6,7...
  • C语言定义和引用二维数组

    千次阅读 2021-01-08 18:13:48
    怎样定义和引用二维数组 二维数组常称为矩阵。把二维数组写成行(row)和列(column)...二维数组定义的一般形式为 类型说明符 数组名 [常量表达式] [常量表达式] 例如: float a[3][4],b[5][10]; 定义a为3x4(三行四列)
  • C语言-二维数组定义、引用

    万次阅读 2019-04-10 19:05:52
    由行和列组成的二维表格形式元素,二维数组其实也就是矩阵 基本格式:数据类型 数组名[行长度][列长度]; 行长度为二维数组行的个数,必须为常量表达式,不能为变量 列长度为二维数组每一行列的个数,必须为常量...
  • # 1.C语言维数组定义和引用C语言支持一维数组和多维数组。如果一个数组的所有元素都不是数组,那么该数组称为一维数组。## 一维数组定义方式在C语言中使用数组必须先进行定义。一维数组定义方式为:类型说明...
  • 二维数组定义格式

    千次阅读 2020-10-07 17:56:07
    二维数组定义格式
  • C++培训之语言二维数组定义和引用更新时间:2016年09月12日14时39分 来源:传智播客C++培训学院 浏览次数:C语言二维数组定义和引用7.1.1二维数组定义前面介绍的数组只有一个下标,称为一维数组,其数组元素也...
  • 通过赋初值定义二维数组的大小 第一种: 例如:int a[][3] = {{1, 2, 3}, {4, 5}, {6}, {8}}; 注意: 对于二维数组,省略只能省略第一个方括号中的常量表达式 如上的初赋值语句等同于: int a[4][3] = {{1...
  • 让我把最简洁的东西奉献给你:二维数组定义以及动态分配空间下面三种定义形式怎么理解?怎么动态分配空间?(1)、int **Ptr;(2)、int *Ptr[ 5 ]; 我更喜欢写成 int* Prt[5];(3)、int ( *Ptr )[ 5 ];此文引自网上,...
  • C语言二维数组详解

    2022-01-12 15:26:04
    C语言二维数组详解 二维数组定义 简单理解就是:二维数组由多个一维数组构成 类型 数组名[第一维大小][第二维大小]; type arrayName [x][y];//x,y的大小一般均为常量表达式。 int a[2][3];//定义了一个 2 行 3 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,498
精华内容 30,199
关键字:

以下二维数组c的定义形式是