C语言每日一题(9)#150. 矩阵旋转

2024-01-23 14:58:12 浏览数 (1)

题目链接 #150. 矩阵旋转

设计思路

关于矩阵的问题必然会牵扯到二维数组的问题,关键在于旋转,其实不管旋转方式怎么样,它的变换思路都是一致的,只是下标的等价关系不同,下面我们来进行解析。

代码语言:javascript复制
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int n, m;
	int arr[200][200];
	int brr[200][200];//用于存储变换后的矩阵
	while (scanf("%d %d", &n, &m) != EOF)
	{
		for (int i = 0; i < n; i  )
		{
			for (int j = 0; j < m; j  )
			{
				scanf("%d", &arr[i][j]);
			}
		}
		for (int i = 0; i < m; i  )
		{
			for (int j = 0; j < n; j  )
			{
				brr[i][j] = arr[n - j - 1][i];
			}

		}
		for (int i = 0; i < m; i  )
		{
			for (int j = 0; j < n; j  )
			{
				printf("%d", brr[i][j]);
				if (j != n - 1)
				{
					printf(" ");
				}
				
				
			}
			printf("n");
		}
		break;
	}


	return 0;
}

这里如果单纯的进行交换赋值的话,考虑到两个数组的不一致性,会很麻烦,所以用一个空数组进存储,注意旋转后输出的限制条件。

输出结果

0 人点赞