
本题为校赛第一题,要求就是把数组进行旋转,再进行输出
我们首先找一个二维数组把数组读入进去
看案例找规律
案例第一行恰好是输入数列从第一列从下往上输入
第二行恰好是第二列从下往上输入
第一行的输出的数,相对于原数组的列没有发生变化,所以我们可以把它放到外循环
外循环从0开始一直到第m列
故可以得到
for(int j = 0;j<m;j++)
而每行输出的数,相对于原数组的行发生变化,所以放到内循环
内循环从n开始,一直到0,因为数组从0下标开始的,所以n还要减1
故可以得到
for(int i=n-1;i>=0;i–)
然后直接输出即可
代码如下
#include<iostream>
using namespace std;
int main(){
int n,m;
int max;
cin>>n>>m;
int num[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>num[i][j]; // 输入数据
}
}
for(int j=0;j<m;j++){
for(int i=n-1;i>=0;i--){
cout<<num[i][j]<<" "; // 输出数据
}
cout<<endl;
}
return 0;
}
版权声明:本文为qq_46300009原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。