C语言中的二维数组

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;
}
复制代码

每一个矜持淡定的现在,都有一个很傻很天真的曾经

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值