矩阵a是n行m列:矩阵转置是a[i][j]=a[j][i],其中i是从1到m,j是从1到n;图像旋转也是a[i][j]=a[j][i],但是i是从1到m,j是从n到1。
图像旋转:
#include<iostream>
#include<vector>
#include<cmath>
#include<climits>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
vector<vector<int>> a(n+1,vector<int>(m+1));
vector<vector<int>> b(m+1,vector<int>(n+1)); //矩阵的转置
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=m;i++)
{
for(int j=n;j>=1;j--)
{
b[i][j]=a[j][i];
cout<<b[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
矩阵转置:
#include<iostream>
#include<vector>
#include<cmath>
#include<climits>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
vector<vector<int>> a(n+1,vector<int>(m+1));
vector<vector<int>> b(m+1,vector<int>(n+1)); //矩阵的转置
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
b[i][j]=a[j][i];
cout<<b[i][j]<<" ";
}
cout<<endl;
}
return 0;
}