|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 小助理,如未能正确解答您的问题,请继续追问。
|
|