C语言矩阵转置函数:实现前n行n列的转置
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;
}
代码解析:
- 在主函数中初始化一个10x10的矩阵。
- 用户输入要转置的行数和列数
n。 - 调用
transpose函数进行转置操作。 - 循环遍历转置后的前
n行n列,打印输出结果。
说明:
- 本代码中,
transpose函数只处理矩阵上三角部分,因为下三角部分会自动对应转置。 - 该程序可以根据需要修改矩阵的大小和初始值。
希望本文能帮助你理解C语言矩阵转置函数的编写方法。如果你有任何问题,欢迎在评论区留言。
原文地址: https://www.cveoy.top/t/topic/ombw 著作权归作者所有。请勿转载和采集!