日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

邻接矩阵转可达矩阵

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 邻接矩阵转可达矩阵 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鄰接矩陣轉可達矩陣

#include"stdio.h" #define ROW 4 #define COL 4 int A[ROW][COL] = { 0 };//鄰接矩陣 int P[ROW][COL] = { 0 };//可達矩陣 int tmp[ROW][COL] = { 0 };//臨時存放數據的矩陣 int plus[ROW][COL] = { 0 };//存放矩陣相加后的結果 void InitA(int A[ROW][COL]) {int flag = 1, temp;printf("請輸入有向圖的鄰接矩陣中的數據(范圍0,1,2):\n");for (int i = 0; i < ROW; i++){for (int j = 0; j < COL; j++){flag = 1;while (flag){printf("%d行%d列:", i + 1, j + 1);scanf("%d", &temp);if (temp != 0 && temp != 1 && temp != 2){printf("請重新輸入數字0、1、2\n");}else{A[i][j] = temp;flag = 0;}}}} } void Show(int arr[ROW][COL]) {printf("輸出矩陣:\n");for (int i = 0; i < ROW; i++){for (int j = 0; j < COL; j++){printf("%d ", arr[i][j]);}printf("\n");} } void Mult(int row, int col,int rank) {//先把A中的元素賦值給tmpfor (int i = 0; i < row; i++){for (int j = 0; j < col; j++){tmp[i][j] = A[i][j];}}//先把A中的元素賦值給plusfor (int i = 0; i < row; i++){for (int j = 0; j < col; j++){plus[i][j] = A[i][j];}}for (int r = 1; r < rank; r++){ //矩陣相乘運算for (int i = 0; i < row; i++){for (int j = 0; j < col; j++){tmp[i][j] = tmp[i][j] * A[j][i];}}//矩陣相加運算for (int i = 0; i < ROW; i++){for (int j = 0; j < COL; j++){plus[i][j] = plus[i][j] + tmp[i][j];}}} } int main() {InitA(A);Show(A);//打印數組中的元素Mult(ROW, COL, 4-1);//矩陣相乘Show(plus);for (int i = 0; i < ROW; i++){for (int j = 0; j < COL; j++){if (plus[i][j] != 0){plus[i][j] = 1;}if (i == j){plus[i][j] = 1;}}}printf("可達矩陣為:\n");Show(plus);return 0; }

總結

以上是生活随笔為你收集整理的邻接矩阵转可达矩阵的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。