首页 > 其他分享 >蓝桥杯今日份练习

蓝桥杯今日份练习

时间:2022-12-20 22:09:52浏览次数:38  
标签:输出 int 练习 矩阵 旋转 蓝桥 二维 90 今日

一、题目:

给出一个n*m的整数矩阵,请你把这个矩阵顺时针旋转90°以后输出。

输入格式:

第一行输入两个整数n,m(1<=n,m<=200).用空格隔开。接下来n行,每行输入m个整数,表示输入的矩阵。矩阵中的元素都是int范围内的整数。

输出格式:

输出m行,每行n个空格隔开的整数,表示旋转以后的矩阵。注意:每行末尾不能输出多余的空格。

样例输入和输出:

蓝桥杯今日份练习_二维数组

二、思路

首先不能被题目带偏,题目要求旋转90°,我们不可能交换二维数组中元素的值,那样做太麻烦,而且极易出错。

因此我们换一个角度思考,旋转90°,得到一个新的矩阵,我们可以改变二维数组的输出方式,使之成为我们想要的结果。

经观察得,经旋转后的矩阵的每一列都是原来矩阵行的倒序,所以我们可以换个方式输出二维数组里面的元素,而不是改变二维数组的值!

三、源码

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
int arr[205][205]={0};
//做这种题,不能被带偏,本题将矩阵旋转90,不能将矩阵内的数字进行转换,应该以不同形式去输出样例结果
int main()
{
int row, lie;
cin >> row >> lie;
for (int j=1;j<=row;j++)
{
for (int i=1;i<=lie;i++)
{
cin >> arr[j][i];
}
}
for (int n=1;n<=lie;n++)
{
for (int m=0;m<row;m++)
{
cout << arr[row-m][n]<<' ';//cout输出空格形式
}
cout << endl;
}
return 0;
}

标签:输出,int,练习,矩阵,旋转,蓝桥,二维,90,今日
From: https://blog.51cto.com/u_15740457/5956811

相关文章