|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
/*编译一个函数,将一个二维矩阵顺时钟旋转90度,例如:*/
输入 int orig[4][4]=
{
{1,2,3,4},
{2,3,4,5},
{3,4,5,6},
{4,5,6,7}
};
输出:
{
{4,3,2,1},
{5,4,3,2},
{6,5,4,3},
{7,6,5,4}
};
void rotate_maxrtix(int(*oring)[4],int(*out)[4],int len);
当然可以!下面是基于你的函数原型来实现矩阵顺时针旋转90度的完整代码:
#include <stdio.h>
void rotate_matrix(int (*orig)[4], int (*out)[4], int len) {
for (int i = 0; i < len; ++i) {
for (int j = 0; j < len; ++j) {
out[j][len - 1 - i] = orig[i][j];
}
}
}
int main() {
// 输入矩阵
int orig[4][4] = {
{1, 2, 3, 4},
{2, 3, 4, 5},
{3, 4, 5, 6},
{4, 5, 6, 7}
};
// 输出矩阵
int out[4][4];
// 矩阵长度
int len = 4;
// 旋转矩阵
rotate_matrix(orig, out, len);
// 输出结果
printf("旋转后的矩阵:\n");
for (int i = 0; i < len; ++i) {
for (int j = 0; j < len; ++j) {
printf("%d ", out[i][j]);
}
printf("\n");
}
return 0;
}
解释:
1. `rotate_matrix` 函数接受一个指向输入矩阵 `orig` 的指针、一个指向输出矩阵 `out` 的指针,以及矩阵的大小 `len`。
2. 在函数内部,通过遍历输入矩阵,将元素按顺时针旋转90度放入输出矩阵。
3. 在 `main` 函数中,定义了输入矩阵和输出矩阵,并调用 `rotate_matrix` 函数进行旋转。
4. 最后,打印旋转后的矩阵。
你可以直接复制这段代码到你的编译器里运行。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|