二維陣列的動態儲存(遍歷方陣,求各元素的和)
阿新 • • 發佈:2018-12-25
#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;
}
#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;
}