用c语言解决【问题描述】 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 【输入形式】 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 接下来n行每行包含m个整数,表示输入的图像。 【输出形式】 输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。 【样例输入】 2 3 1 5 3 3 2 4 【样例输出】 3 4 5 2 1 3
时间: 2023-08-24 09:06:38 浏览: 82
以下是使用C语言解决该问题的示例代码:
```c
#include <stdio.h>
void rotateImage(int matrix[][100], int n, int m) {
int result[m][n];
// 逆时针旋转90度
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
result[m - j - 1][i] = matrix[i][j];
}
}
// 输出旋转后的矩阵
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
}
int main() {
int n, m;
int matrix[100][100];
// 读取输入
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 旋转图像并输出结果
rotateImage(matrix, n, m);
return 0;
}
```
请注意,这里假设输入的图像矩阵最大为100x100,你可以根据需要进行调整。代码通过嵌套循环遍历输入矩阵,并将旋转后的结果存储在新的矩阵中,然后再打印出来。
阅读全文