c语言编写函数,用指针实现矩阵相加,并且将结果矩阵的指针作为函数返回值

如题所述

#include "stdio.h"

#include "stdlib.h"

int **matrixAdd(int x1[][3],int x2[][3],int row,int col)

{

     int **a=NULL;

     int i,j;

     a=(int **)malloc(row*sizeof(int *));

     for(i=0;i<row;i++)

      a[i]=(int *)malloc(col*sizeof(int));

     for(i=0;i<row;i++)

      for(j=0;j<col;j++)

       a[i][j]=x1[i][j]+x2[i][j];

     return a;

}

int main()

{

     int a[2][3]={{1,2,3},{4,5,6}};

     int b[2][3]={{11,12,13},{14,15,16}};

     int ** result=NULL;

     int i,j;

     result=matrixAdd(a,b,2,3);

     for(i=0;i<2;i++) 

     {

          for(j=0;j<3;j++)

            printf("%d ",result[i][j]);

          printf("\n");

     }

     free(result);

     result=NULL;

}

结果:

 

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-01
int* addMetrix(int *a, int *b, int n) { int i, len = n * n, res*; res = (int*)calloc(len, sizeof(int)); for(i = 0; i < len; i++) res[i] = a[i] + b[i]; return res; } //n是矩阵的维数,设方阵是n*n的