用c语言编写一个函数,将一个3x3的整形矩阵转置。
时间: 2024-02-12 20:08:44 浏览: 86
以下是一个实现将3x3整型矩阵转置的C函数:
```c
void transpose(int matrix[3][3]) {
int temp;
for (int i = 0; i < 3; i++) {
for (int j = i + 1; j < 3; j++) {
temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
```
这个函数接受一个3x3的整型数组作为参数,并将其转置。它使用一个嵌套的循环来遍历矩阵,交换每个元素的行和列索引以实现转置。
相关问题
用c语言编写函数,矩阵转置
以下是用C语言编写的矩阵转置函数:
```c
void transpose(int mat[][N], int tr[][N], int n)
{
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
tr[j][i] = mat[i][j];
}
```
其中,mat是原始矩阵,tr是转置后的矩阵,n是矩阵的阶数。函数中使用两个for循环遍历矩阵,将原始矩阵中每个元素赋值给转置矩阵对应的位置上。
用C语言编写一个函数,实现求3x3矩阵对角元素之和。函数原型为:int sum(int(*p)[3]);。
在C语言中,你可以创建一个函数`sum`,它接受一个指向3x3整数矩阵的指针,并返回对角线元素之和。这是一个简单的实现:
```c
#include <stdio.h>
// 函数声明
int sum(int (*matrix)[3]);
// 函数实现
int sum(int (*matrix)[3]) {
int sum = 0;
for (int i = 0; i < 3; i++) { // 遍历矩阵的3行
sum += matrix[i][i]; // 对角线元素是行索引等于列索引的元素
}
return sum;
}
int main() {
int arr[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int result = sum(arr); // 调用函数计算对角线元素总和
printf("3x3矩阵的对角线元素之和: %d\n", result);
return 0;
}
```
当运行这个程序,对于给定的矩阵`arr`,它会输出对角线元素1+5+9的总和,即15。
阅读全文