编写一个函数,输入为一个矩阵,打印这个矩阵转置后的结果。
例:
输入矩阵是
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;
}