C语言矩阵转置函数:实现前n行n列的转置

本文将介绍用C语言编写一个函数,实现对矩阵前n行和前n列的转置操作。示例中包含了矩阵初始化、输入n值、调用函数进行转置以及输出结果的完整代码。

函数定义:

void transpose(int (*matrix)[10], int n);

函数功能:

实现对一个矩阵的前n行和前n列转置。

参数说明:

  • matrix: 指向矩阵的指针
  • n: 要转置的行数和列数

代码示例:

#include <stdio.h>

void transpose(int (*matrix)[10], int n) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (i < j) { // 只处理上三角矩阵
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }
    }
}

int main() {
    int matrix[10][10] = {{1, 3, 5, 7, 9, 6, 5, 4, 3, 2},
                          {2, 4, 6, 8, 0, 7, 6, 5, 4, 3},
                          {3, 5, 7, 9, 1, 8, 7, 6, 5, 4},
                          {4, 6, 8, 0, 2, 9, 8, 7, 6, 5},
                          {5, 7, 9, 1, 3, 0, 9, 8, 7, 6},
                          {6, 8, 0, 2, 4, 1, 0, 9, 8, 7},
                          {7, 9, 1, 3, 5, 2, 1, 0, 9, 8},
                          {8, 0, 2, 4, 6, 3, 2, 1, 0, 9},
                          {9, 1, 3, 5, 7, 4, 3, 2, 1, 0},
                          {0, 2, 4, 6, 8, 5, 4, 3, 2, 1}};
    int n;
    scanf('%d', &n);
    transpose(matrix, n);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf('%d ', matrix[i][j]);
        }
        printf('
');
    }
    return 0;
}

代码解析:

  1. 在主函数中初始化一个10x10的矩阵。
  2. 用户输入要转置的行数和列数 n。
  3. 调用 transpose 函数进行转置操作。
  4. 循环遍历转置后的前 n 行 n 列,打印输出结果。

说明:

  • 本代码中,transpose 函数只处理矩阵上三角部分,因为下三角部分会自动对应转置。
  • 该程序可以根据需要修改矩阵的大小和初始值。

希望本文能帮助你理解C语言矩阵转置函数的编写方法。如果你有任何问题,欢迎在评论区留言。

C语言矩阵转置函数:实现前n行n列的转置

原文地址: https://www.cveoy.top/t/topic/ombw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录