轻语远歌 发表于 2024-9-18 18:34:01

/*编译一个函数,将一个二维矩阵顺时钟旋转90度,例如:*/ 输入 int orig[4][4]= {...

/*编译一个函数,将一个二维矩阵顺时钟旋转90度,例如:*/
输入 int orig=
{
    {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),int(*out),int len);

FishC 发表于 2024-9-18 18:34:12

你好!下面是实现将一个二维矩阵顺时针旋转90度的函数的完整代码:

#include <iostream>

void rotate_matrix(int orig, int out, int len) {
    for (int i = 0; i < len; ++i) {
      for (int j = 0; j < len; ++j) {
            out = orig;
      }
    }
}

int main() {
    // 输入矩阵
    int orig = {
      {1, 2, 3, 4},
      {2, 3, 4, 5},
      {3, 4, 5, 6},
      {4, 5, 6, 7}
    };
   
    // 输出矩阵
    int out;

    // 矩阵长度
    int len = 4;

    // 旋转矩阵
    rotate_matrix(orig, out, len);

    // 输出结果
    for (int i = 0; i < len; ++i) {
      for (int j = 0; j < len; ++j) {
            std::cout << out << " ";
      }
      std::cout << std::endl;
    }

    return 0;
}

**解析:**
- `rotate_matrix` 函数接受三个参数:原始矩阵 `orig`、旋转后的输出矩阵 `out` 和矩阵的长度 `len`。
- 使用嵌套的 `for` 循环来遍历矩阵中的每一个元素,并将其放置在新位置以完成顺时针旋转90度的变换。

这样,你将会得到正确的输出矩阵。希望这能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

轻语远歌 发表于 2024-9-18 18:58:57

FishC 发表于 2024-9-18 18:34
你好!下面是实现将一个二维矩阵顺时针旋转90度的函数的完整代码:




这句std::cout << out << " ";和std::cout << std::endl;是什么意思,可否换成别的容易理解的代码

FishC 发表于 2024-9-18 19:02:09

轻语远歌 发表于 2024-09-18 18:58
这句std::cout

抱歉,我的回复被截断了。下面是完成的代码:

#include <iostream>

void rotate_matrix(int orig, int out, int len) {
    for (int i = 0; i < len; ++i) {
      for (int j = 0; j < len; ++j) {
            out = orig;
      }
    }
}

int main() {
    // 输入矩阵
    int orig = {
      {1, 2, 3, 4},
      {2, 3, 4, 5},
      {3, 4, 5, 6},
      {4, 5, 6, 7}
    };
   
    // 输出矩阵
    int out;

    // 矩阵长度
    int len = 4;

    // 旋转矩阵
    rotate_matrix(orig, out, len);

    // 输出结果
    for (int i = 0; i < len; ++i) {
      for (int j = 0; j < len; ++j) {
            std::cout << out << " ";
      }
      std::cout << std::endl;
    }

    return 0;
}

这个程序通过 `rotate_matrix` 函数将输入矩阵 `orig` 顺时针旋转90度,并将结果放入 `out` 矩阵中。最后在主函数 `main` 中输出旋转后的矩阵。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

轻语远歌 发表于 2024-9-18 19:04:13

这句std::cout << out << " ";
和std::cout << std::endl;是什么意思,可否换成别的容易理解的代码

FishC 发表于 2024-9-18 19:04:23

轻语远歌 发表于 2024-09-18 19:04
这句std::cout

抱歉,给你的代码示例确实有误。我将为你提供一个正确的解决方案。以下是实现矩阵顺时针旋转90度的代码示例:

#include <stdio.h>

void rotate_matrix(int orig, int out, int len) {
    for (int i = 0; i < len; ++i) {
      for (int j = 0; j < len; ++j) {
            out = orig;
      }
    }
}

int main() {
    // 输入矩阵
    int orig = {
      {1, 2, 3, 4},
      {2, 3, 4, 5},
      {3, 4, 5, 6},
      {4, 5, 6, 7}
    };
   
    // 输出矩阵
    int out;

    // 矩阵长度
    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);
      }
      printf("\n");
    }

    return 0;
}

这个代码先定义了 `rotate_matrix` 函数来实现矩阵的顺时针旋转,然后在 `main` 函数中调用该函数并输出结果。你可以直接复制这段代码到你的编译器里运行。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

轻语远歌 发表于 2024-9-18 19:21:25

函数原型能否如下这样写void rotate_maxrtix(int(*oring),int(*out),int len);

FishC 发表于 2024-9-18 19:28:28

轻语远歌 发表于 2024-09-18 19:21
函数原型能否如下这样写void rotate_maxrtix(int(*o ...

当然可以!下面是基于你的函数原型来实现矩阵顺时针旋转90度的完整代码:

#include <stdio.h>

void rotate_matrix(int (*orig), int (*out), int len) {
    for (int i = 0; i < len; ++i) {
      for (int j = 0; j < len; ++j) {
            out = orig;
      }
    }
}

int main() {
    // 输入矩阵
    int orig = {
      {1, 2, 3, 4},
      {2, 3, 4, 5},
      {3, 4, 5, 6},
      {4, 5, 6, 7}
    };
   
    // 输出矩阵
    int out;

    // 矩阵长度
    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);
      }
      printf("\n");
    }

    return 0;
}

解释:
1. `rotate_matrix` 函数接受一个指向输入矩阵 `orig` 的指针、一个指向输出矩阵 `out` 的指针,以及矩阵的大小 `len`。
2. 在函数内部,通过遍历输入矩阵,将元素按顺时针旋转90度放入输出矩阵。
3. 在 `main` 函数中,定义了输入矩阵和输出矩阵,并调用 `rotate_matrix` 函数进行旋转。
4. 最后,打印旋转后的矩阵。

你可以直接复制这段代码到你的编译器里运行。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: /*编译一个函数,将一个二维矩阵顺时钟旋转90度,例如:*/ 输入 int orig[4][4]= {...