*解题思路:按照a[i++][j++]顺序存储,按照a[jmax–][i++]顺序输出,但因为在main()函数中开a[1000][1000]二维数组会炸,所以要使用vector容器*
或者在main()函数外建立a[1001][1001]数组(见代码二);
代码如下:
代码1:
#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n,m,pp;
vector<int>b;
vector< vector<int> >a;
cin>>n>>m;
for(int i=0;i<n;i++){
b.clear();
for(int j=0;j<m;j++){
cin>>pp;
b.push_back(pp);
}
a.push_back(b);
}
for(int j=m-1;j>=0;j--){
for(int i=0;i<n;i++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
代码二:
#include<cstdio>
#include<iostream>
using namespace std;
int a[1001][1001];
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
for(int j=m-1;j>=0;j--){
for(int i=0;i<n;i++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}