亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

學(xué)習(xí)二維動(dòng)態(tài)數(shù)組指針做矩陣運(yùn)算的方法

2020-05-23 14:16:44
字體:
供稿:網(wǎng)友

這片文章介紹了如何利用二維動(dòng)態(tài)數(shù)組指針做矩陣運(yùn)算,需要的朋友可以參考下

本文分享了利用二維動(dòng)態(tài)數(shù)組指針做矩陣運(yùn)算的實(shí)現(xiàn)代碼。

1. 頭文件

 

 
  1. // juzhen 2.cpp : Defines the entry point for the console application. 
  2. // 
  3.  
  4. #include "stdafx.h" 
  5. #include "stdlib.h" 
  6. #include "windows.h" 
  7. #define OK 0 
  8. #define NG -1 
  9. typedef struct mat 
  10. int nRow; /* 行數(shù) */ 
  11. int nCol; /* 列數(shù) */ 
  12. int* pData; /* 指向矩??體的指? */ 
  13. }MAT; 

2. 程序代碼

 

 
  1. #include "stdafx.h" 
  2. #include "Matrix_cal.h" 
  3. /* Entity and initial matrix of the application matrix function */ 
  4. int MATAlloc(MAT *pMat, int nRow, int nCol) 
  5. pMat->pData = (int *) malloc (nRow * nCol * sizeof(int) ); 
  6. if(NULL == pMat->pData) 
  7. printf("Memary is error!/n"); 
  8. return NG; 
  9. for(int i=0; i<nRow; ++i) 
  10. for(int j=0; j<nCol; ++j) 
  11. *(pMat->pData + i*nCol + j)=0; 
  12. pMat->nRow = nRow; 
  13. pMat->nCol = nCol; 
  14. return OK; 
  15.  
  16. /* Release the memory space and reset the matrix data function */ 
  17. void MATFree(MAT* pMat) 
  18. free(pMat->pData); 
  19. pMat->pData = NULL; 
  20. pMat->nRow = 0; 
  21. pMat->nCol = 0; 
  22.  
  23. /* Import of matrix function */ 
  24. int MATAssign (MAT* pMat1, const MAT* pMat2) 
  25. MATAlloc(pMat1, pMat2->nRow, pMat2->nCol); 
  26. for(int i=0; i < pMat1->nRow; ++i) 
  27. for(int j=0; j < pMat1->nCol; ++j) 
  28. *(pMat1->pData + i * pMat1->nCol + j) = *(pMat2->pData + i * pMat1->nCol + j); 
  29. return OK;  
  30.  
  31. /* Matrix sum function */ 
  32. int MATAdd(const MAT* pMat1, const MAT* pMat2, MAT* pMat3) 
  33. MATAlloc(pMat3, pMat1->nRow, pMat1->nCol); 
  34. if((pMat1->nRow == pMat2->nRow) && (pMat1->nCol == pMat2->nCol)) 
  35. for(int i=0; i<pMat1->nRow; ++i) 
  36. for(int j=0; j<pMat1->nCol; ++j) 
  37. *(pMat3->pData + i * pMat3->nCol + j) = *(pMat1->pData + i * pMat1->nCol + j) + *(pMat2->pData + i * pMat1->nCol + j); 
  38. return OK;  
  39. else 
  40. printf("Not add!/n"); 
  41. return NG; 
  42.  
  43.  
  44. /* Matrix subtraction function */ 
  45. int MATSub(const MAT* pMat1, const MAT* pMat2, MAT* pMat3) 
  46. MATAlloc(pMat3, pMat1->nRow, pMat1->nCol); 
  47. if((pMat1->nRow == pMat2->nRow) && (pMat1->nCol == pMat2->nCol)) 
  48. for(int i=0; i<pMat1->nRow; ++i) 
  49. for(int j=0; j<pMat1->nCol; ++j) 
  50. *(pMat3->pData + i * pMat3->nCol + j) = *(pMat1->pData + i * pMat1->nCol + j) - *(pMat2->pData + i * pMat1->nCol + j); 
  51. return OK;  
  52. else 
  53. printf("Not Sub!/n"); 
  54. return NG; 
  55.  
  56.  
  57. /* Matrix clear */ 
  58. void MATClear(MAT* pMat) 
  59. for(int i=0; i<pMat->nRow; ++i) 
  60. for(int j=0; j<pMat->nCol; ++j) 
  61. *(pMat->pData + i * pMat->nCol + j)=0; 
  62.  
  63. /* Matrix multiplication C function */ 
  64. void MATMulC (MAT* pMat, int C) 
  65. for(int i=0; i<pMat->nRow; ++i) 
  66. for(int j=0; j<pMat->nCol; ++j) 
  67. *(pMat->pData + i * pMat->nCol + j) = C * (*(pMat->pData + i * pMat->nCol + j) ); 
  68.  
  69. /* Matrix multiplication function */ 
  70. int MATMul (const MAT* pMat1, const MAT* pMat2, MAT* pMat3) 
  71. MATAlloc(pMat3, pMat1->nRow, pMat2->nCol); 
  72. if(pMat1->nCol == pMat2->nRow) 
  73. for(int i=0; i<pMat1->nRow; ++i) 
  74. for(int j=0; j<pMat2->nCol; ++j) 
  75. for(int k=0; k<pMat1->nCol; ++k) 
  76. *(pMat3->pData + i * pMat2->nCol+j) += *(pMat1->pData + i * pMat2->nRow + k) * (*(pMat2->pData + k * pMat2->nCol + j) ); 
  77. return OK;  
  78. else 
  79. printf("not Mul/n"); 
  80. return NG; 
  81. /* Matrix transpose function */ 
  82. int MATTransport(const MAT* pMat1, MAT* pMat2) 
  83. MATAlloc(pMat2, pMat1->nCol, pMat1->nRow); 
  84. for(int i=0; i<pMat1->nRow; ++i) 
  85. for(int j=0; j<pMat1->nCol; ++j) 
  86. *(pMat2->pData + j * pMat1->nRow + i) = *(pMat1->pData + i * pMat1->nCol + j); 
  87. return OK; 
  88. /* 
  89. bool Check_digit(char *kk) 
  90. { 
  91. int a = strlen(kk); 
  92. for(int i = 0; i<a; ++i) 
  93. { 
  94. if( ( (int) (*(kk + i) ) > 48) && ( (int) (*(kk + i) ) < 57 || (int) (*(kk + i) ) == 32) ) 
  95. { 
  96. return 1; 
  97. } 
  98. } 
  99. return 0; 
  100. } 
  101.  
  102. */ 
  103.  
  104. /* Matrix initialization */ 
  105. void MATinit(MAT *pMat) 
  106. bool kos=1; 
  107. int nRow = 0, nCol = 0; 
  108. printf("Please input the number of rows: "); 
  109. scanf_s("%d",&nRow); 
  110. putchar('/n'); 
  111. printf("Please input the number of columns: "); 
  112. scanf_s("%d",&nCol); 
  113. putchar('/n'); 
  114. printf("Please input %dX%d Matrix:/n",nRow,nCol); 
  115. kos=MATAlloc(pMat,nRow,nCol); 
  116. for(int i=0; i<nRow; ++i) 
  117. for(int j=0; j<nCol; ++j) 
  118. scanf("%d", pMat->pData + i*nCol + j); 
  119. /*char arr[100][100]={0}; 
  120. for(int i=0; i<nRow; ++i) 
  121. { 
  122. for(int j=0; j<nCol; ++j) 
  123. { 
  124. scanf("%c", &arr[i][j]); 
  125. kos = Check_digit(&arr[i][j]); 
  126. } 
  127. } 
  128. //ks= atoi(arr[0]); 
  129. while(kos) 
  130. { 
  131. printf(" input is error,Please input again!"); 
  132. for(int i=0; i<nRow; ++i) 
  133. { 
  134. for(int j=0; j<nCol; ++j) 
  135. { 
  136. scanf("%c", arr[i]); 
  137. } 
  138. } 
  139. kos = Check_digit(arr[0]); 
  140. //ks= atoi(arr[0]); 
  141. } 
  142. for(int i=0; i<nRow; ++i) 
  143. { 
  144. for(int j=0; j<nCol; ++j) 
  145. { 
  146. *(pMat->pData + i*nCol + j) = atoi(&arr[i][j]); 
  147. } 
  148. } 
  149.  
  150. } 
  151. */ 
  152.  
  153. /* Output matrix */ 
  154. void Print(MAT *pMat) 
  155. printf("The result is:/n"); 
  156. for(int i = 0; i < pMat->nRow; ++i) 
  157. for(int j=0; j<pMat->nCol; ++j) 
  158. printf("%d ",*( pMat->pData + i * pMat->nCol + j) ); 
  159. putchar('/n'); 
  160.  
  161. int _tmain(int argc, _TCHAR* argv[]) 
  162. int nRow = 1,nCol = 1,sign = 1,C = 1,work = 1,sigal=0; 
  163. MAT Mat, Mat1, Mat2; 
  164. MAT *pMat = &Mat; 
  165. MAT *pMat1 = &Mat1; 
  166. MAT *pMat2 = &Mat2; 
  167. while(work) 
  168. system("cls"); 
  169. printf(" Welcome To The Matrix Operation system! /n"); 
  170. printf("------------------------------------------------/n"); 
  171. printf("1: Open The Generating matrix function!/n"); 
  172. printf("2: Open The Release matrix function!/n"); 
  173. printf("3: Open The Import matrix function!/n"); 
  174. printf("4: Open The Add matrix function!/n"); 
  175. printf("5: Open The Matrix subtraction function!/n"); 
  176. printf("6: Open The Clear matrix function!/n"); 
  177. printf("7: Open The Matrix multiplication C function!/n"); 
  178. printf("8: Open The Matrix multiplication function!/n"); 
  179. printf("9: Open The Matrix transpose function!/n"); 
  180. printf("------------------------------------------------/n"); 
  181. printf("Please Select operation type:"); 
  182. scanf("%d",&sign); 
  183. switch(sign) 
  184. case 1: 
  185. MATinit(pMat); 
  186. Print(pMat); 
  187. break
  188. case 2: 
  189. MATinit(pMat); 
  190. Print(pMat); 
  191. MATFree(pMat); 
  192. break
  193. case 3: 
  194.  
  195. MATinit(pMat2); 
  196. MATAssign (pMat1, pMat2); 
  197. Print(pMat1); 
  198. break
  199. case 4: 
  200. MATinit(pMat1); 
  201. MATinit(pMat2); 
  202. sigal = MATAdd(pMat1, pMat2,pMat); 
  203. if(0 == sigal) 
  204. Print(pMat); 
  205. break
  206. case 5: 
  207. MATinit(pMat1); 
  208. MATinit(pMat2); 
  209. sigal = MATSub(pMat1, pMat2,pMat); 
  210. if(0 == sigal) 
  211. Print(pMat); 
  212. break
  213. case 6: 
  214. MATinit(pMat); 
  215. Print(pMat); 
  216. MATClear(pMat); 
  217. Print(pMat); 
  218. break
  219. case 7: 
  220. printf("Please input the number of C: "); 
  221. scanf("%d",&C); 
  222. putchar('/n'); 
  223. MATinit(pMat); 
  224. MATMulC (pMat, C); 
  225. Print(pMat); 
  226. break
  227. case 8: 
  228. MATinit(pMat1); 
  229. MATinit(pMat2); 
  230. sigal = MATMul (pMat1, pMat2, pMat); 
  231. if(0 == sigal) 
  232. Print(pMat); 
  233. break
  234. case 9: 
  235. MATinit(pMat1); 
  236. MATTransport(pMat1, pMat2); 
  237. Print(pMat2); 
  238. break
  239. default: printf("input is error!"); 
  240. printf("Whether exit the Matrix calculation system?(1 is not exit,0 is exit)/n"); //whether exit the system. 
  241. scanf("%d", &work); 
  242. fflush(stdin); 
  243. while (work != 0 && work != 1) //work must is 1 or 0. 
  244. printf(" Input is error,Please input again!/n"); 
  245. scanf("%d", &work); 
  246. fflush(stdin); 
  247. printf("/n-------------Thanks For You Using The Matrix Calculation System !--------------/n"); 
  248. Sleep(2000); //deley some times. 
  249. return 0; 

以上就是實(shí)現(xiàn)二維動(dòng)態(tài)數(shù)組指針做矩陣運(yùn)算的代碼,希望對大家的學(xué)習(xí)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
久久久国产一级片| 香蕉国产成人午夜av影院| 999精品嫩草久久久久久99| 国产亚洲自拍一区| 九九热视频在线| 国产成人日日夜夜| av免费中文字幕| 99精品久久久久久中文字幕| xxxxx国产| heyzo在线| 日韩在线视频观看免费| 天天色天天操天天射| 桃花网日韩影视在线观看视频| free欧美性| 大桥未久在线播放| 成人午夜电影小说| 欧美美女直播网站| 成人av集中营| 国产精品青青在线观看爽香蕉| 欧美性感一类影片在线播放| 久久视频在线观看免费| 自拍另类欧美| 五月天色综合| 国产精品美女久久久浪潮软件| 欧美天堂一区| www.久久伊人| 久久精品亚洲精品国产欧美kt∨| 日本精品视频在线观看| 免费在线超碰| 99国产精品久| 蜜桃精品在线观看| 水中色av综合| h视频在线观看网站| 黄色片免费在线| 91免费在线看片| 国产精品666| av一级亚洲| 丁香另类激情小说| 黄大色黄女片18免费| 一色屋成人免费精品网| 精品久久久国产| 三级一区二区三区| 精品福利在线| 无码人妻一区二区三区线| 精品入口蜜桃| 日韩三级在线| 久久久国产精品x99av| 国产成人啪精品视频免费网| 免费在线超碰| 91嫩草视频在线观看| 亚洲欧美卡通动漫| 成人动漫在线免费观看| 欧洲精品久久一区二区| 青青操在线视频| 国产激情久久久| av观看在线| 国产精品99久久久久| 激情懂色av一区av二区av| 91精品在线看| 欧美18一12sex性处hd| 日韩天堂在线| 色综合五月天| 亚洲狼人综合干| 日韩一级免费看| 亚洲综合色丁香婷婷六月图片| 欧美久久一二三四区| 日本a级片免费观看| 欧美成人做性视频在线播放| 日本丰满大乳奶| 国产精品igao激情视频| 欧美日韩一区二区高清| 日日夜夜免费精品视频| 亚洲国产日韩一区无码精品久久久| 久久久精品免费视频| 黄色网在线免费看| 91传媒理伦片在线观看| 午夜视频免费在线| 亚洲中文字幕无码专区| 亚洲少妇中文在线| 久久久精品久久久久久96| 一级黄色片在线免费观看| 国产www精品| 91久久国产婷婷一区二区| 欧美日韩精品三区| 欧美激情专区| 中文字幕乱码在线| 狠狠操在线视频| 在线观看国产一区二区三区| 亚洲1区2区3区4区| 欧美午夜一区| 1024精品合集| 97人人干人人| 91色综合久久久久婷婷| 国产精品嫩草影院av蜜臀| 日本免费观看视| 四季av在线一区二区三区| 精品福利电影| 国产欧美日本一区视频| 91久久精品一区二区别| 黄色欧美日韩| 日韩在线理论| 免费久久一级欧美特大黄| 久草网在线视频| 日本v片在线高清不卡在线观看| 91地址最新发布| 57pao成人国产永久免费| 中文字幕一区二区三区av| 免费成人在线观看视频| 欧美性活一级视频| 欧美伦理91| 亚洲激精日韩激精欧美精品| 亚洲系列第一页| 日韩精品诱惑一区?区三区| 免费污视频在线一区| 99精品视频免费| 日韩欧美中文字幕在线播放| 国产午夜精品视频一区二区三区| 国产一卡二卡三卡四卡| 国产无遮挡又黄又爽又色| 强行糟蹋人妻hd中文| 国产精品第157页| 精品欧美在线观看| 亚洲自拍偷拍网| 国产亚洲一区二区三区| 国产精品永久久久久久久久久| 欧美日韩国产欧| 中文在线a天堂| 日本在线中文字幕一区二区三区| 一级黄色录像在线观看| 久久亚洲精品中文字幕蜜潮电影| 98精品国产自产在线观看| 2023国产精品自拍| 在线一区日本视频| 欧美一级淫片a免费视频| 日本va欧美va精品| 91激情在线| 欧美日韩一区二区三区在线免费观看| 亚洲熟女乱综合一区二区| 精品一区二区三区国产| 亚洲欧美色图小说| 日日夜夜天天操| 性伦欧美刺激片在线观看| 成人免费看片视频在线观看| 国产亚洲精久久久久久| 中文字幕在线免费不卡| 成人一区在线看| 精品视频偷偷看在线观看| 在线不卡免费欧美| 日韩av免费观影| 国产精品三级美女白浆呻吟| 日韩精品一区二区三区不卡| 欧美在线观看网址综合| 夜夜嗨av一区二区三区网页| 日本在线观看免费视频| 国产又大又粗又爽| 一区二区中文字幕在线| 欧美不卡123| 性一交一乱一伧国产女士spa| 天堂av中文在线观看| 亚洲成人第一区| 欧美福利在线播放网址导航| 欧美日韩午夜电影网| www.98色噜噜噜| 国产美女免费观看| a视频在线观看| 日韩欧美123| 北条麻妃在线视频观看| 在线观看视频污| 日韩在线免费电影| 天堂美国久久| 91嫩草国产线观看亚洲一区二区| 色综合久久综合网欧美综合网| 天天操天天干天天爱| 久久久婷婷一区二区三区不卡| 99在线精品视频在线观看| 很污的网站在线观看| 中文字幕网址在线| 91成人性视频| 亚洲精品网址| 9lporm自拍视频区在线| 中文字幕一区二区三区欧美日韩| 国产精品一区二区久久| 天堂中文在线观看视频| 久久久免费视频网站| 美女张开让男人捅| 欧美高清www午色夜在线视频| 精品国产_亚洲人成在线| 亚洲二区免费| 韩国主播福利视频一区二区三区| 涩涩视频网站| 加勒比在线一区| 在线一区二区三区四区五区| 日产精品久久久久久久| 狠狠色狠狠色综合人人| 欧美精品一区二区三区久久久竹菊| 久久大香伊蕉在人线观看热2| 成人中心免费视频| 美女欧美视频在线观看免费| 欧美猛男性生活免费| 国产乱码午夜在线视频| 高清毛片在线观看| 中文字幕免费高清视频| 精品国产一区二区三区忘忧草| 精品高清在线| 美女xx视频| 欧美日韩激情视频8区| 菠萝菠萝蜜在线视频免费观看| 久久精品视频免费看| 欧美无乱码久久久免费午夜一区| 欧美在线se| 亚洲午夜久久久久久久国产| 国产尤物精品| 午夜视频在线播放| 麻豆视频免费在线观看| 日本毛片在线观看| 久久精品99久久无色码中文字幕| 国产日韩精品在线观看| 久久99精品国产99久久| 成人羞羞视频免费看看| 日韩一区二区电影在线| 久久夜夜久久| 亚洲精品成人无码毛片| 在线成人福利| 成人三级伦理片| 精品一区二区三区在线观看国产| 欧美大片1688网站| 亚洲免费色视频| 亚洲综合中文字幕68页| 久久99精品国产91久久来源| 国产精品高潮在线| 免费成人三级| 在线观看日韩国产| 亚洲综合视频在线| 91传媒久久久| 精品久久久久香蕉网| 日本三级电影免费观看| 玖草视频在线观看| 在线天堂中文www官网| 在线国产精品播放| 91精品国产乱码久久久久久久久| 中文字幕日韩久久| 国产精品久久久久久在线| 日本簧片在线观看| 国产精品99久久久| 久久r热视频| 麻豆精品蜜桃视频网站| 国产欧美丝袜| 亚洲成人中文字幕| 免费观看欧美大片| 亚洲国产精品久久91精品| 亚洲人成电影网站色mp4| av午夜在线观看| 成人激情校园春色| 国产精品卡一卡二卡三| 樱花草www在线| av在线一区二区| 视频一区二区国产| 国产大陆精品国产| 欧美做a欧美| 国产精品巨作av| 亚洲kkk444kkk在线观看| 欧美日韩播放| 另类专区欧美制服同性| 视频国产一区二区| 日韩在线综合| 亚洲天堂偷拍| 91午夜精品亚洲一区二区三区| 中文字幕欧美专区| 九色porny蝌蚪视频在线观看| 亚洲成av在线| 精品视频二区| xxx免费视频| av在线播放国产| 日韩一区二区三区在线免费观看| 国产精品精品视频| 国产精品免费人成网站酒店| 久久国产精品一区二区三区四区| www在线观看免费视频| 久久色.com| 福利视频一区二区三区| 亚洲AV第二区国产精品| 久久婷婷一区二区| 国产中文字幕乱人伦在线观看| 亚洲精品无播放器在线播放| 欧美一级片在线播放| 亚洲国产av一区二区三区| 91免费视频网| 天天爽夜夜爽人人爽| 女人18毛片一区二区三区| 日本dhxxxxxdh14日本| 免费观看亚洲视频| 一区二区在线视频播放| 日韩二区三区在线| 亚洲国产岛国毛片在线| 午夜视频在线免费| 午夜国产在线视频| 国产激情在线观看视频| 欧美日韩中国免费专区在线看| 狠狠色噜噜狠狠狠狠97| www日韩视频| 欧美日本黄色片| 男人天堂中文字幕| 日韩欧美在线网站| 男女作爱免费网站| 欧洲精品一区二区三区在线观看| 妺妺窝人体色WWW精品| 欧美在线一二三四区| 中国一级特黄录像播放| 精品久久久无码中文字幕| 久久成年人网站| 久久精品官网| 男女激情网站| 国产在线电影| 日韩一区二区麻豆国产| 亚洲成人午夜影院| 欧美午夜在线一二页| 奇米精品一区二区三区四区| 国产精品免费久久| 亚洲欧美国产一本综合首页| 影视先锋av在线| 精品国产乱码久久久久久老虎| 日本一道本视频| 亚洲网站视频福利| 国产成人免费xxxxxxxx| 中国xxxx自拍视频| 欧美乱大交做爰xxxⅹ小说| 国产91热爆ts人妖在线| 青青久久aⅴ北条麻妃|