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[3][3];/定义一个三行三列的数组/
int i,j,sum=0; /定义循环控制变量好保存数据变量sum/
printf(“please input:\n”); /利用循环数组对数组元素进行输入/
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
/利用循环数组对对角线对其求和/
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(i==j)
{
sum=sum+a[i][j];
}
}
}
printf("the result is : %d\n",sum); /*输出最后的结果*/
return 0;
}
复制代码
3.二维数组应用
复制代码
#include<stdio.h>
int main()
{
int a[2][3],b[3][2]; /定义两个数组/
int max,min;/表示最大值和最小值/
int h,l,i,j;/用于循环控制/
for(i=0;i<2;i++) /通过键盘为数组元素赋值/
{
for(j=0;j<3;j++)
{
printf(“a[%d][%d]=”,i,j);
scanf("%d",&a[i][j]);
}
}
printf("输出二维数组:\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d\t",a[i][j]);/*使元素分行显示*/
}
printf("\n");
}
/*求数组中最大元素及其下标*/
max=a[0][0];
h=0;
l=0;
for(i=0;i<2;i++)
{
for(j=0;j<3;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[0][0];
h=0;
l=0;
for(i=0;i<2;i++)
{
for(j=0;j<3;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=0;i<2;i++)
{
for(j=0;j<3;j++)
{
b[j][i]=a[i][j];
}
}
printf("输出转换后的二维数组:\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("%d\t",b[i][j]);
}
printf("\n"); /*使元素分行显示*/
}
return 0;
}
复制代码
每一个矜持淡定的现在,都有一个很傻很天真的曾经