文章
26
粉丝
0
获赞
13
访问
1.9k
#include<bits/stdc++.h>
using namespace std;
int n,m,k,a[150][150]={0},b[100]={0};
//需要注意使用引用传值
void change1(int &n,int &m,int a[150][150]){
int a_s[150][150];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
//顺时针旋转90度的公式
a_s[j][n-i-1]=a[i][j];
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
a[i][j]=a_s[i][j];
}
}
swap(n,m);//需要注意经过change1之后,n和m的值需要互换
}
void change2(int n,int m,int a[150][150]){
int left=0,right=m-1,a_s[150][150]={0};
for(int i=0;i<n;i++){
//另一种交换的方法
// while(left<right){
// swap(a[i][left],a[i][right]);
// left++;
// right--;
// }
for(int j=0;j<m;j++){
a_s[i][j]=a[i][m-1-j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=a_s[i][j];
}
}
}
//需要注意使用引用传值
void change3(int &n,int &m,int a[150][150]){
change1(n,m,a);
change1(n,m,a);
change1(n,m,a);
}
int main(){
while(cin>>n>>m>>k)...
登录后发布评论
用注释的代码时要把left和right重新赋值