编写一个函数,输入为一个矩阵,打印这个矩阵转置后的结果。
例:
输入矩阵是
1,2,3,45,6,7,89,10,11,1213,14,15,16
打印结果应该是
13,9,5,114,10,6,215,11,7,316,12,8,4
#include<stdio.h> #include<stdlib.h> int main() { int N; while (~scanf("%d",&N)) { int M[105][105] = { 0 }; for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) { scanf("%d", &M[j][i]); } for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) { if (j < N - 1) printf("%d ", M[i][j]); else printf("%d\n", M[i][j]); } } return 0; }
#include <iostream> using namespace std; int main() { int m,n; cin>>m>>n; // m行n列 int **p=new int *[m]; // p为输入矩阵 for(int i=0;i<m;i++) { p[i]=new int[n]; } int **q=new int *[n]; // q为输出矩阵 for(int t=0;t<n;t++) { q[t]=new int[m]; } for(int j=0;j<m;j++) // 输入p中的元素并给q中的元素赋值 { for(int k=0;k<n;k++) { cin>>p[j][k]; q[k][m-j-1]=p[j][k]; } } for(int r=0;r<n;r++) // 输出q中的元素 { for(int s=0;s<m;s++) { cout<<q[r][s]<<" "; } cout<<endl; } return 0; }