程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 矩陣-將代碼添加完整,使輸出如圖所示

矩陣-將代碼添加完整,使輸出如圖所示

編輯:編程解疑
將代碼添加完整,使輸出如圖所示

如圖圖片說明注意!!!只是添加生成矩陣A和B,顯示矩陣,矩陣相加這幾個函數的代碼和有?的地方,不能改變其他內容!
圖片中有要求!!!

最佳回答:


完整的示例程序如下:
#include

typedef struct
{
int pMat;/保存矩陣數據*/
int row;
int col;
}MAT,*pMAT;
/*字符串類型*/
typedef char * string;
/*生成矩陣A*/
void CreateMatA(pMAT a);
/*生成矩陣B*/
void CreateMatB(pMAT a);
/*顯示矩陣*/
void ShowMat(string str,pMAT a);
/*矩陣相加*/
void MatAdd(pMAT a,pMAT b,pMAT c);

void main()
{
int m = 3;
int n = 4;
MAT A={0,m,n},B={0,m,n};
pMAT C = new MAT;

CreateMatA(&A);
CreateMatB(&B);
MatAdd(&A,&B,C);
ShowMat("A:",&A);
ShowMat("B:",&B);
ShowMat("C=A+B:",C);
delete A.pMat;/*釋放內存*/
delete B.pMat;
delete C->pMat;
delete C;
printf("按任意鍵退出");
getch();/*按任意鍵退出*/

}
void CreateMatA(pMAT a)
{
int row,col;
int offset = 0;
int nV1,nV2;
a->pMat = new int[a->row * a->col];
for(row = 0;row < a->row;row++)
{
nV1 = (row + 1) * 10;
for (col = 0;col < a->col;col++)
{
nV2 = col * 2;
offset = row * a->col + col;
a->pMat[offset] = nV1 + nV2;
}
}
}
void CreateMatB(pMAT a)
{
int row,col;
int offset = 0;
int nV1,nV2;
a->pMat = new int[a->row * a->col];
for(row = 0;row < a->row;row++)
{
nV1 = (row + 1) * 10;
for (col = 0;col < a->col;col++)
{
nV2 = col * 1;
offset = row * a->col + col;
a->pMat[offset] = nV1 + nV2;
}
}
}
void ShowMat(string str,pMAT a)
{
int row,col;
int offset = 0;
printf("%s\n",str);
for(row = 0;row < a->row;row++)
{
for (col = 0;col < a->col;col++)
{
offset = row * a->col + col;
printf("%2d ",a->pMat[offset]);
}
printf("\n");
}
printf("\n");
}
void MatAdd(pMAT a,pMAT b,pMAT c)
{
int row,col;
int offset = 0;
c->row = a->row;
c->col = a->col;
c->pMat = new int[a->row * a->col];
for(row = 0;row < a->row;row++)
{
for (col = 0;col < a->col;col++)
{
offset = row * a->col + col;
c->pMat[offset] = a->pMat[offset] + b->pMat[offset];
}
}
}
運行結果如下:
圖片說明

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved