1. 问题
【例题】循环输入,每组数据先输入一个 n(n<=10),然后 n 行 n 列数据代表一个矩阵,
每个数据为一个整数,然后再给出一个数字 R,输出这个矩阵按照顺时针旋转 90 X R 度以后的矩阵。
2. 思路
3. 代码
const int MAX = 10;
int input_matrix(int a, int b, int M[MAX][MAX])
{
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
{
std::cin >> M[i][j];
}
}
return 0;
}
int output_matrix(int a, int b, int M[MAX][MAX])
{
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
{
std::cout << M[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
int transform_matrix(int n, int m, int A[MAX][MAX])
{
int tmp[MAX][MAX];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
tmp[j][n - 1 - i] = A[i][j];
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
A[i][j] = tmp[i][j];
}
}
output_matrix(n, m, A);
}
int main()
{
int n;
std::cout << "input n X n matrix" << std::endl;
while (std::cin >> n)
{
int matA[MAX][MAX];
input_matrix(n, n, matA);
output_matrix(n, n, matA);
int R;
std::cout << "input R" << std::endl;
std::cin >> R;
R %= 4;
for (int i = 0; i < R; i++)
{
transform_matrix(n, n, matA);
}
}
return 0;
}
原文 https://blog.csdn.net/WhereIsHeroFrom/article/details/118273637