c语言二维数组定义和赋值,c语言二维数组的初始化

  c语言二维数组定义和赋值,c语言二维数组的初始化

  Yyds干货库存

  大家好,我是李泽。希望看完之后能帮到你。如有不足请指正!一起学习交流。

  2021博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~ ~阿里云专家博主明星博主~掘金InfoQ ~ P Creator ~周榜109(总榜886) 35w全网访问量

  本文原载于P,作者Yuze。如需转载请告知。

  个人主页51Ctop P博客

  欢迎喜欢你喜欢的留言。

  系列专栏51Ctop _ 博客的分类

  我们不在自己选择的舞台上,表演也不是自己选择的剧本。

  二维数组的定义和参考前面的博客介绍过,一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中,很多量是二维或者多维的,所以C语言允许构造多维数组。多维数组中的一个元素有多个下标来标识它在数组中的位置,所以它也被称为多下标变量。本片介绍二维数组。

  1.二维数组的定义二维数组的声明与一维数组相同,其一般形式如下:

  类型描述符数组名称[常量表达式1][常量表达式2];其中“常量表达式1”称为行下标,“常量表达式2”称为列下标。二维数组下标的取值范围如下:

  行下标的取值范围是:0~n-1。列下标的取值范围是:0~m-1。最大元素标识符下的二维数组:array[n-1][m-1]。例如,定义一个3行3列的整数数组。

  Int array[3][3]上面的代码声明了一个3行3列的二维数组。它的数组名是array,下标变量的类型是integer。

  如下图所示,这个数组中有3x3个下标变量。

  在C语言中,二维数组是按行排列的,即按行的顺序存储,先存储array[0],再存储arrar[1],再存储array[2]。每行有三个元素,也是依次存储的。

  注意:在C语言中,二维数组是按行排列的。

  2.二维数组元素的引用。二维数组元素的一般引用形式如下:

  数组名[下标][下标];注意:二维数组的下标可以是整数常量,也可以是整数表达式。

  比如:A[3][4];用三行四列表示数组A的元素。下标和数组描述在形式上有些相似,但是它们有完全不同的含义。数组描述的方括号中给出了一个维度的长度,即可以去掉目标的最大值;数组元素中的下标是元素在数组中的位置标识。前者只能是常量,后者可以是常量、变量或表达式。

  注意:无论是行下标还是列下标,其中的索引值都是从0开始的。注意:和一维数组一样,我们都需要注意下标越界的问题。练习一:一个学习小组有5个人,每个人有三次考试成绩。求全组平均分和各科总平均分。代码如下:

  #定义

  #包含stdio.h

  int main(){

  int i,j;//二维数组下标

  int sum=0;//当前科目的总成绩

  int平均值;//总平均分

  int v[3];//所有科目的平均分

  int a[3][5];//一个二维数组,用来保存每个学生各科成绩,三门,五个学生。

  Printf(请输入学生各科成绩:\ n );

  for(I=0;i3;我)

  {

  printf( \ n一科算五级\ n );

  如果(i==0)

  Printf(数学学科:);

  如果(i==1)

  Printf(中文主语:);

  如果(i==2)

  Printf(英语主语:);

  for(j=0;j 5;j)

  {

  scanf(%d ,a[I][j]);//输入每个学生的科目成绩。

  sum=a[I][j];//计算当前科目的总分(总和)

  }

  v[I]=sum/5;//当前科目的平均分,总分除以5

  sum=0;//将当前科目的总分清零

  }

  平均值=(v[0]v[1]v[2])/3;

  printf( \ n数学:%d\n中文:% d \ n英文:% d \ n ,v[0],v[1],v[2]);

  Printf(平均分数:%d\n ,平均);

  返回0;

  }

  编译和执行上述代码时,可能会产生以下结果:

  二维数组初始化二维数组初始化也在类型描述时给下标变量赋初始值。二维数组可以按行分段赋值,也可以按行连续赋值。这是一个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 };

  访问二维数组的元素int val=a[2][3];

  练习2:获取每行和每列中数组元素的值,如以下代码所示:

  #定义

  #包含stdio.h

  int main(void){

  int i,j;

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

  for(I=0;i3;我)

  {

  for(j=0;j 3;j)

  {

  printf(arr[%d][%d]=[%d] [%p]\n ,I,j,arr[i][j],arr[I][j]);

  }

  printf( \ n );

  }

  返回0;

  }当编译并执行上述代码时,会产生以下结果。线性、连续和递增。

  初始化二维数组要注意几点。1.您只能为某些元素赋值,未赋值的元素将自动取“0”值。例如:

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

  就是给每行的第一个列元素赋值,未赋值元素的值为0。赋值后每个元素的值为:

  1 2 0

  2 3 0

  3 4 0

  2.如果所有元素都被赋值,则可能不会给出第一维的长度。例如:

  int arr[3][3]={{1,2,3},{2,3,4},{3,4,5 } };

  也可以写成是:

  int arr[][3]={{1,2,3},{2,3,4},{3,4,5 } };

  注意:行可以省略,列不能省略。

  3.二维数组可以看作嵌套的一维数组;如果一个数组的每个元素都是另一个数组,那么它就是一个二维数组。当然,前提是元素的类型必须相同。按照这种分析,一个二维数组也可以分解成多个一维数组,C语言允许这种分解。

  比如二维数组a[3][4]可以分解成三个一维数组,数组名分别为a[0]、a[1]和a[2]。这三个一维数组可以直接使用。所有三个一维数组都有四个元素。比如一维数组a[0]的元素有A [0],a[0][1],a[0][2],a[0][3]。

  Yuze 51Ctop,

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: