C语言中的二维数组

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

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

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

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

(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]input

二.二维数组的引用io

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

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;
}
相关文章
相关标签/搜索