編寫函數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;
}