当前位置:首页 » 编程语言 » c语言中的二维数组

c语言中的二维数组

发布时间: 2022-04-26 05:07:27

c语言二维数组怎么表示

int
a[m][n];//就表示一个m行n列的整型二维数组
在c语言中数组的下标是从0开始的所以,数组a的元素个数可以表示为:a[0][0]-a[m-1][n-1]
例如:
#include<stdio.h>
int main()
{
int a[3][2],i,j;//定义一个3行2列的整型二维数组a
for(i=0;i<3;i++)//依次给二维数组赋值
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
printf("\n");
for(i=0;i<3;i++){//输出二维数组
for(j=0;j<2;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
/*
运行结果:
1 2
3 4
4 5
1 2
3 4
4 5
*/

Ⅱ c语言中二维数组的定义

二维数组定义的一般形式是:
类型说明符 数组名[常量表达式1][常量表达式2]
其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度

int a[3][4];

Ⅲ 在C语言中,二维数组元素在内存中的存放顺序是____。(

在c语言里二维数组元素在内存中是按行存放的。

二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t;

按“列优先顺序”存储时,地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t;

存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节。

(3)c语言中的二维数组扩展阅读

C++动态二维数组:

以整形为例,row为行数,col为列数

int **data;//存储二维数组的指针(指向指针的指针。date=x[0][0]的地址。这样标会更好。因为sizeof(date)结果为4不可能存下二维数组)。

//以下实现如何申请内存

data = new int *[row];

for (int k = 0; k < row; k++)

{

data[k] = new int[col];

}

//赋值跟普通二维数组一样 例如

data[0][0] = 5; //将二维数组1行1列(C++中称为0行0列)赋值为5

//删除内存

for (int i = 0 ; i < row; ++i)

{

delete [] data[i]; //此处的[]不可省略

}

delete [] data;

Ⅳ 二维数组(c语言)

#include<stdio.h>
intmain()
{
inta[4][3],i,j,imax,jmax,imin,jmin,max=0,min=10000;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
if(max<a[i][j])
{
max=a[i][j];
imax=i;
jmax=j;
}
if(min>a[i][j])
{
min=a[i][j];
imin=i;
jmin=j;
}
}
printf("max[%d][%d]=%d,min[%d][%d]=%d ",imax,jmax,max,imin,jmin,min);
return0;
}

Ⅳ C语言编程 二维数组

在C语言中,有时我们需要函数的返回值为一个二维数组。这样外部函数接收到这个返回值之后,可以把接收到的二维数组当成矩阵操作(外部函数不可用普通的一级指针接收返回值,这样的话,外部函数将不知道它具有二维性)。方法如下:
法1.没有使用typedef类型定义

[cpp] view plain
#include <stdio.h>
int (*fun(int b[][2]))[2]
{
return b;
}

int main()
{
int i,j;
int a[2][2]={1,2,5,6};
int (*c)[2];
c = fun(a);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%d ",c[i][j]);
return 0;
}
法2.使用typedef类型定义

[cpp] view plain
#include <stdio.h>
typedef int (*R)[2];
R fun(int b[][2])
{
return b;
}
int main()
{
int i,j;
int a[2][2] = {1,2,5,6};
R c;
c = fun(a);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%d ",c[i][j]);
return 0;
}
使用typedef类型定义可以增加程序的可读性
这两种方法本质上是一样的

Ⅵ c语言中的二维数组

C 语言中的多维数组(multidimensional array)其实就是元素为数组的数组。n 维数组的元素是 n-1 维数组。例如,二维数组的每个元素都是一维数组,一维数组的元素当然就不是数组了。

多维数组声明时,每个维度用一对方括号来表示:char screen[10][40][80]; // 一个三维数组

数组 screen 包含 10 个元素,从 screen[0] 到 screen[9]。每个元素又是一个二维数组,它有 40 个元素,这 40 个元素均是一维数组,然后每个一维数组内都有 80 个字符。整体来说,screen 数组有 32000(10×40×80)个 char 类型元素。

想要获取该三维数组 screen 内的某个 char 元素,必须指定 3 个索引值。例如,下面的语句把字符Z写入该数组的最后一个元素位置:screen[9][39][79] = 'Z';

Ⅶ c语言中 二维数组要怎么输入怎么换行啊

scanf那行里的a[i][j]要写成&a[i][j],输入就正常的输入就行了,其实scanf读入数字的时候,数字可以用空格、回车或者TAB间隔,比如说一个2x2的数组,你输入
10 11
12 13
或者输入10 11 12 13都是可以的。

Ⅷ 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类型,该类型占两个字节的内存空间,所以每个元素均占有两个字节。

Ⅸ C语言中如何定义动态二维数组并输出

intmain()

{

int**p;//定义二维指针。

intm,n;//行数和列数。

inti,j;

scanf("%d%d",&m,&n);//输入行数和列数。

if(m<=0||n<=0)return-1;//行数或列数非法。

p=(int**)malloc(sizeof(int*)*m);//申请一组一维指针空间。

for(i=0;i<m;i++)

p[i]=(int*)malloc(sizeof(int)*n);//对于每个一维指针,申请一行数据的空间。

for(i=0;i<m;i++)

for(j=0;j<n;j++)

scanf("%d",&p[i][j]);//输入第i行第j列的数据。其中&p[i][j]也可以写作p[i]+j或者是*(p+i)+j.功能相同。

printf("输入的数组为%d行%d列: ",m,n);

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)//这个循环可以输出一行元素。

printf("%d",p[i][j]);//输出i行j列的元素。

printf(" ");//每行输入结束加换行符。

}

//释放内存

for(i=0;i<m;i++)

free(p[i]);

free(p);


return0;

}

(9)c语言中的二维数组扩展阅读

c语言中通过函数传递二维数组

#include

void func(int n, int a[][size])

{

/* access array */

a[i][j];

}

void main()

{

int a[10][10];

func(10, a);

}

热点内容
游程编码c语言 发布:2025-05-16 21:26:51 浏览:586
帝来哪个配置值得购买 发布:2025-05-16 21:12:29 浏览:462
什么是nodejs前端服务器 发布:2025-05-16 21:12:17 浏览:405
编译选项立即绑定未定义符号 发布:2025-05-16 20:55:13 浏览:906
linuxmysql慢日志 发布:2025-05-16 20:47:58 浏览:271
村两委有哪些配置 发布:2025-05-16 20:34:47 浏览:293
我的世界有什么服务器好玩的 发布:2025-05-16 20:28:57 浏览:484
c语言按位与运算 发布:2025-05-16 20:24:10 浏览:755
苹果手机如何修改密码安全 发布:2025-05-16 20:23:34 浏览:194
图片文字识别算法 发布:2025-05-16 20:21:54 浏览:47