矩阵旋转菜鸟级

矩阵旋转

描述

给你各一个n*n的矩阵,你的任务是将它顺时针旋转角度d。

输入

输入的第一个数为T,表示接下来有T组数据。

每组数据的格式如下:

第一行为两个整数n,d。1<=n<=100,d是90的倍数。

接下来有n行。每行n个整数,每个数之间由一个空格隔开,表示这个矩阵的元素。

输出

输出旋转后的矩阵,每个矩阵后面空一行,注意行末不要输出多余的空格。

输入样例 1 

2
3 90
1 2 3
4 5 6
7 8 9
4 270
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

输出样例 1

7 4 1
8 5 2
9 6 3

4 8 12 16
3 7 11 15
2 6 10 14
1 5 9 13

就按照数组的下标,该输出哪个就输出哪个,即可。 

 注意:每一个数组结束后记得加\n !!!

#include<stdio.h>
int a[100][100];
int main()
{
	int i,j,n,d,t;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d %d",&n,&d);
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
				scanf("%d",&a[i][j]);
		}
		
		if(d%360==90)
		{
			for(i=0;i<n;i++)
			{
				for(j=n-1;j>=0;j--)
				{
					printf("%d",a[j][i]);
					if(j!=0)
						printf(" ");
					else
						printf("\n");
				}
			}
		}
		
		else if(d%360==180)
		{
			for(i=n-1;i>=0;i--)
			{
				for(j=n-1;j>=0;j--)
				{
					printf("%d",a[i][j]);
					if(j!=0)
						printf(" ");
					else
						printf("\n");
				}
			}
		}
		
		else if(d%360==270)
		{
			for(j=n-1;j>=0;j--)
			{
				for(i=0;i<n;i++)
				{
					printf("%d",a[i][j]);
					if(i!=n-1)
						printf(" ");
					else
						printf("\n");
				}
			}
		}
		else
		{
			for(i=0;i<n;i++)
			{
				for(j=0;j<n;j++)
					{
						printf("%d",a[i][j]);
						if(j!=n-1)
							printf(" ");
						else
							printf("\n");
					}
			}
		}
		printf("\n");
	}
	
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值