1. 程式人生 > >二維陣列的動態儲存(遍歷方陣,求各元素的和)

二維陣列的動態儲存(遍歷方陣,求各元素的和)

#define _CRT_SECURE_NO_WARNINGS 
#include<iostream>
using namespace std;
int **InitialArray(int row,int column)  //動態建立陣列並初始化
{
int **matrix = new int *[row];  // 申請row個整型指標的一維陣列
   int i,j,n=1;


   for(i=0;i<row;i++)
   {
      matrix[i] = new int [column];  // 為每一行申請column個整型元素的一維陣列
 for(j=0;j<column;j++,n++)
 matrix[i][j] = n;   //為每個元素賦值
   }
   return matrix;
}


void OutputArray(int **matrix,int row,int column)  //輸出二維陣列元素
{
for(int i = 0; i<row; i++)
{
   for(int j=0; j<column; j++)
cout<<matrix[i][j]<<" \t";
cout<<endl;
}
  }


void FreeArray(int ** matrix,int row)  //釋放二維陣列所佔用的記憶體空間
{
   for(int i = 0; i<row;i++)
  delete(matrix[i]); //釋放每一行
      delete(matrix);  //釋放一維指標陣列
}


void SumArray(int row,int column)  //陣列元素求和
{
   int **matrix=InitialArray(row, column);  // 初始化建立陣列
   int i,j,sum=0;


   for(i=0;i<row;i++)
      for(j=0;j<column;j++)
 sum+=matrix[i][j];  //依次遍歷每個元素,並求和


   OutputArray(matrix,4,4);
   cout<<"sum="<<sum<<endl;
   FreeArray(matrix,4);
}


int main()
{
    SumArray(4,4);
return 0;
}