程式設計C 實驗五 題目四 二維動態陣列轉置(0294)
阿新 • • 發佈:2018-12-09
輸入兩個數字分別控制行向量個數和列向量個數。動態生成二維矩陣,對矩陣賦值後將其轉置輸出。
Description輸入的第一行為了兩個整數m、n,接下來有一個由m*n個數據組成的整數矩陣。
Input按轉置後的矩陣格式輸出轉置矩陣(n*m)。
Output1 2 3 4 5 | 3 2 1 2 3 4 5 6 |
1 2 3 | 1 3 5 2 4 6 |
#include <stdio.h> #include <stdlib.h> int main() { int **ptr_a,m,n,i,j; //**ptr_a為二級指標 scanf("%d %d",&m,&n); ptr_a = (int **)malloc(m * sizeof(int *)); //先動態分配一維陣列 if(ptr_a == NULL) return 0; for(i = 0;i < m;i++) { ptr_a[i] = (int *)malloc(n * sizeof(int)); //為每一個一維陣列再動態分配記憶體 if(ptr_a == NULL) return 0; } for(i = 0;i < m;i++) { for(j = 0;j < n;j++) { scanf("%d",&ptr_a[i][j]); } } for(i = 0;i < n;i++) { for(j = 0;j < m;j++) { if(j == m - 1) printf("%d\n",ptr_a[j][i]); else printf("%d ",ptr_a[j][i]); } } for(i = 0;i < m;i++) { free(ptr_a[i]); } free(ptr_a); return 0; }