1.二维数组的定义和引用

一. 数据类型 数组名[常量表达式1][常量表达式2];

(1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1

(2)列下标的取值范围0~m-1

(3)二维数组的最大下标元素是array[n-1][m-1];

假如有一个数组array[3][4];则其下标变量为 array[0][0],array[0][1],array[0][2],array[0][3],array[1][0],array[1][1],array[1][2],array[1][3],array[2][0],array[2][1],array[2][2],array[2][3]

二.二维数组的引用

数组名[下标][下标];

array[1][2]

2.二维数组初始化

(1)可以将所有数据写在一个大括号内,按照数组元素排序对元素赋值。int array[2][2]={1,2,3,4};

(2)在为所有元素赋初值时,也可以省略行下标,但是不能省略列下标。int array[][3]={1,2,3,4,5,6};

(3)也可以分行给数组元素赋值。 int a[2][3]={{1,2,3},{4,5,6}}; a[0][0]=1;a[0][1]=2;a[0][2]=3...

在分行赋值时,可以只对部分元素赋值。int a[2][3]={{1,2},{4,5}};a[0][0]=1;a[0][1]=2;a[0][2]=0;a[1][0]=4;a[1][1]=5;a[1][2]=0;

(4)二维数组也可以直接对数组元素赋值。int a[2][3]; a[0][0]=1;

#include<stdio.h>
/*任意输入一个三行三列的二维数组,求对角元素之和*/
int main()
{
int a[][];/*定义一个三行三列的数组*/ int i,j,sum=; /*定义循环控制变量好保存数据变量sum*/
printf("please input:\n"); /*利用循环数组对数组元素进行输入*/ for(i=;i<;i++)
{
for(j=;j<;j++)
{
scanf("%d",&a[i][j]);
}
} /*利用循环数组对对角线对其求和*/
for(i=;i<;i++)
{
for(j=;j<;j++)
{
if(i==j)
{ sum=sum+a[i][j];
}
}
} printf("the result is : %d\n",sum); /*输出最后的结果*/
return ; }

3.二维数组应用

#include<stdio.h>

int main()
{
int a[][],b[][]; /*定义两个数组*/
int max,min;/*表示最大值和最小值*/
int h,l,i,j;/*用于循环控制*/
for(i=;i<;i++) /*通过键盘为数组元素赋值*/
{
for(j=;j<;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
} printf("输出二维数组:\n");
for(i=;i<;i++)
{
for(j=;j<;j++)
{
printf("%d\t",a[i][j]);/*使元素分行显示*/
}
printf("\n");
}
/*求数组中最大元素及其下标*/ max=a[][];
h=;
l=; for(i=;i<;i++)
{
for(j=;j<;j++)
{
if(max<a[i][j])
{
max=a[i][j]; h=i;
l=j;
}
} } printf("数组中最大元素是:\n"); printf("max:a[%d][%d]=%d\n",h,l,max);
/*求数组中最小元素及其下标*/ min=a[][]; h=;
l=;
for(i=;i<;i++)
{
for(j=;j<;j++)
{
if(min>a[i][j])
{
min=a[i][j];
h=i;
l=j;
}
}
} printf("数组中最小元素是:\n");
printf("min:a[%d][%d]=%d\n",h,l,min);
/*将数组a转换后存入数组b中*/
for(i=;i<;i++)
{
for(j=;j<;j++)
{
b[j][i]=a[i][j];
}
} printf("输出转换后的二维数组:\n"); for(i=;i<;i++)
{
for(j=;j<;j++)
{ printf("%d\t",b[i][j]);
}
printf("\n"); /*使元素分行显示*/
}
return ;
}

C语言中的二维数组的更多相关文章

  1. C语言中的二维数组和数组指针的那些事

    其实很多人就想弄明白这个定义了的数组指针里面赋值给的a究竟是什么 a是一个列地址,那么*a是什么,*a还是个地址它存储了行地址.如果我们定义一个指针,那他就有点二级指针的味道.因为它存储的是一个地址, ...

  2. C语言如何动态分配二维数组

    C语言如何动态分配二维数组(转载) 原文链接:https://www.cnblogs.com/0xWitch/p/9314621.html 使用malloc().free()函数进行动态分配,这两个函 ...

  3. C#中读取二维数组每位的长度

    C#中的二维数组,如int[,] A=new int[a,b];则 a=A.GetLength(0);即可获得二维数组中第一维的长度. b=A.GetLength(1);即可获得二维数组中第二维的长度 ...

  4. Java中的二维数组

    Java 中的二维数组 所谓二维数组,可以简单的理解为是一种"特殊"的一维数组,它的每个数组空间中保存的是一个一维数组. 那么如何使用二维数组呢,步骤如下: 1. 声明数组并分配空 ...

  5. iOS中的二维数组

    首先我们知道OC中是没有二维数组的,二维数组是通过一位数组的嵌套实现的,但是别忘了我们有字面量,实际上可以和C/C++类似的简洁地创建和使用二维数组.这里总结了创建二维数组的两种方法以及数组的访问方式 ...

  6. 一些Python中的二维数组的操作方法

    一些Python中的二维数组的操作方法 这篇文章主要介绍了一些Python中的二维数组的操作方法,是Python学习当中的基础知识,需要的朋友可以参考下 需要在程序中使用二维数组,网上找到一种这样的用 ...

  7. Java中一维,二维数组的静态和动态初始化

    今天我们要开始来讲讲Java中的数组,包括一维数组和二维数组的静态初始化和动态初始化 数组概述: 数组可以看成是多个相同类型数据的组合,对这些数据的统一管理; 数组变量属于引用数据类型,数组也可以看成 ...

  8. php中遍历二维数组并以表格的形式输出

    一.索引数组 <?php //使用array()语句结构将联系人列表中所有数据声明为一个二维数组,默认下标是顺序数字索引 $contact1 = array( //定义外层数组 array(1, ...

  9. Java 中的二维数组

    所谓二维数组,可以简单的理解为是一种“特殊”的一维数组,它的每个数组空间中保存的是一个一维数组. 那么如何使用二维数组呢,步骤如下: 1. 声明数组并分配空间 或者 如: 2. 赋值 二维数组的赋值, ...

随机推荐

  1. spark streamingcontext

    一个StreamingContext定义之后,必须做以下几件事情:1.通过创建输入DStream来创建输入数据源.2.通过对DStream定义transformation和output算子操作,来定义 ...

  2. 汽车行业解决方案_K2助力车企实现费控/生产“端到端流程”

    如今汽车行业正面对一轮全球范围内新变革周期,这种“变革”一方面来源于在新能源技术.人工智能.信息技术.物联网技术等高新科技地猛烈敲击,另一方面源于全球的经济政策变幻莫测,贸易保护时代地到来,车企深陷发 ...

  3. onmouseover与onmouseenter区别

    1.onmouseover.onmouseout:鼠标经过时自身触发事件,经过其子元素时也触发该事件:(父亲有的东西,儿子也有) ,支持冒泡 2.onmouseenter.onmouseleave:鼠 ...

  4. Class的 getSuperclass与getGenericSuperclass区别

    一.getSuperclass   返回直接继承的父类(由于编译擦除,没有显示泛型参数)  Class<? super T> getSuperclass()           返回表示此 ...

  5. R语言最优化(多维)

    线性搜索的最速上升法 #### max.search <- function(f, x, y, tol=1e-9, a.max = 2^5){ if(sum(abs(y)) == 0) retu ...

  6. Unity3d KeyCode 键盘各种键值详情

    KeyCode :KeyCode是由Event.keyCode返回的.这些直接映射到键盘上的物理键. 值        对应键 Backspace     退格键 Delete      Delete ...

  7. linux中常见的命令

    linux 中的命令非常多,但是玩过linux的人也从来不会因为Linux的命令如此之多而烦恼,我们只需要掌握其中常见的命令即可,可以在使用时去找man,会帮助你解决不少问题.下面就列出一些常见的li ...

  8. C语言的#if #ifdef #ifndef

    #if #ifedf #ifndef   —般情况下,C语言源程序中的每一行代码.都要参加编译.但有时候出于对程序代码优化的考虑.希望只对其中一部分内容进行编译.此时就需要在程序中加上条件,让编译器只 ...

  9. Eclipse远程调试+FTPClient在jdk6以上写法不兼容问题的排查

    业务场景: 应业务新需求的UAT测试,需要部署一份新tomcat到测试环境.新环境正常启动并运行了一天,没太大差错.但今天发现原本在另一个老的tomcat下运行的好好的FTP上传文件模块突然出了问题. ...

  10. Beta冲刺前的准备

    Beta冲刺前准备 1.讨论组长否重选的议题和结论 经过团队讨论,不重选组长.我们团队在队长的带领下积极完成任务,使得团队项目初具模型.经过alpha阶段,我们的团队从一开始的零散到如今的凝聚,通力合 ...