编写函数CreateMatrix( int **a,int n, int m),创建一个n行m列的二维数组a,并将各个元素初始化为0。
C++版:
#include <iostream>
using namespace std;
//创建一个n行m列的二维数组a,并将各个元素初始化为0;
void CreateMatrix( int **&a,int n, int m)
{
int i,j;
a = new int *[n]; //创建有n个元素的指针数组
for( i=0; i<n; i++)
{
a[i] = new int[m]; //创建有m个整型元素的数组
}
for( i=0; i<n; i++)
{
for( j=0; j<m; j++)
{
a[i][j] = 0;
}
}
}
//释放数组a所占用空间
void freeMatrix( int **a,int n )
{
int i;
for( i=0; i<n; i++)
{
delete [] a[i];
}
delete []a;
}
int main()
{
int **a, n=8,m=10;
int sum = 0;
CreateMatrix(a,n,m);
for (int i=0; i<n; i++)
for(int j=0; j<m; j++)
{
sum += a[i][j];
}
cout<<sum<<endl; // 输出结果
freeMatrix(a,n);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
//创建一个n行m列的二维数组a,并将各个元素初始化为0;
void CreateMatrix( int ***a,int n, int m)
{
int i,j;
*a = (int**)malloc(n*sizeof(int*));
for( i=0; i<n; i++)
{
(*a)[i] = (int*)malloc(m*sizeof(int));
}
for( i=0; i<n; i++)
{
for( j=0; j<m; j++)
{
(*a)[i][j] = 1;
}
}
}
//释放数组a所占用空间
void freeMatrix( int **a,int n )
{
int i;
for( i=0; i<n; i++)
{
free(a[i]);
}
free(a);
}
int main()
{
int **a, n=8,m=10;
int sum = 0;
CreateMatrix(&a,n,m);
for (int i=0; i<n; i++)
for(int j=0; j<m; j++)
{
sum += a[i][j];
}
printf("sum=%d\n",sum);
freeMatrix(a,n);
system("pause");
return 0;
}