@chawuciren
2018-10-16T12:42:22.000000Z
字数 1426
阅读 902
CSI
#include<stdlib.h>#include<stdio.h>void FreeMatrix(int** mat);//释放int** CreatMatrix(int row,int col); //建立int** Malloc(int row,int col);//申请空间void Free(int** a);int** CreatMatrix(int row,int col){int** matrix=(int **)malloc(sizeof(int*) * row);for(int i=0;i<row;i++){matrix[i]=(int *)malloc(sizeof(int) * col);}return matrix;}int** Malloc(int row,int col){int** ret=(int **)malloc(sizeof(int*) * row);int* p=(int *)malloc(sizeof(int)*row*col);int i=0;if(ret&&p){for(i=0;i<row;++i){ret[i]=(p+col*i);}}else{free(ret);free(p);return 0;}return ret;}void Free(int** a){free(a[0]);free(a);}void FreeMatrix(int** mat){free(mat[0]);free(mat);}int main(){int row=5,col=5;int** matrixa=CreatMatrix(row,col);//建立矩阵aint** matrixb=CreatMatrix(row,col);//建立矩阵bint** matrixc=CreatMatrix(row,col);//建立矩阵cfor(int i=0;i<row;i++){ //输入第一个矩阵for(int j=0;j<row;j++){printf("input a[%d][%d]:\n",i,j);scanf("%d",&matrixa[i][j]);}}for(int i=0;i<row;i++){ //输入第二个矩阵for(int j=0;j<row;j++){printf("input b[%d][%d]:\n",i,j);scanf("%d",&matrixb[i][j]);}}for(int i=0;i<row;i++){ // 两个矩阵相乗等于cfor(int j=0;j<row;j++){for(int k=0;k<row;k++){matrixc[i][j]=matrixa[i][k]*matrixb[k][j];}}}for(int j=0;j<row;j++) //输出printf("%d",matrixc[0][j]);for(int j=0;j<row;j++)printf("%d",matrixc[1][j]);for(int j=0;j<row;j++)printf("%d",matrixc[2][j]);for(int j=0;j<row;j++)printf("%d",matrixc[3][j]);for(int j=0;j<row;j++)printf("%d",matrixc[4][j]);FreeMatrix(matrixa);//释放FreeMatrix(matrixb);FreeMatrix(matrixc);return 0;}
在此输入正文
