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;
}
相關文章
相關標籤/搜索