C語言動態二維數組矩陣轉置


 

 

 

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     int m,n,i,k;
 6     scanf("%d%d",&m,&n);
 7     
 8     //原矩陣
 9     int **A = (int**)malloc(sizeof(int*) * m);
10     for(i=0; i<m; i++)
11     {
12         A[i] = (int*)malloc(sizeof(int) * n);
13     }
14     for(i=0; i<m ; i++)
15     {
16         for(k=0; k<n; k++)
17         {
18             scanf("%d", &A[i][k]);
19         }
20     }
21     printf("\n原矩陣\n");
22     for(i=0; i<m ; i++)
23     {
24         for(k=0; k<n; k++)
25         {
26             printf("%-3d", A[i][k]);
27         }
28         printf("\n");
29     }
30 
31     //轉置矩陣
32     int **AT = (int**)malloc(sizeof(int*) * n);
33     for(i=0; i<n; i++)
34     {
35         AT[i] = (int*)malloc(sizeof(int) * m);
36     }
37     for(i=0; i<n ; i++)
38     {
39         for(k=0; k<m; k++)
40         {
41             AT[i][k] = A[k][i];
42         }
43     }
44     printf("\n轉置矩陣\n");
45     for(i=0; i<n ; i++)
46     {
47         for(k=0; k<m; k++)
48         {
49             printf("%-3d", AT[i][k]);
50         }
51         printf("\n");
52     }
53     
54     //釋放空間 
55     for(i=0; i<m; i++)
56     {
57         free(A[i]);
58     }
59     free(A);
60     
61     for(i=0; i<n; i++)
62     {
63         free(AT[i]);
64     }
65     free(AT);
66     
67     return 0;
68 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM