C语言写一个函数,将二维数组(3*3)转置,即行列互换
时间: 2024-02-03 09:13:32 浏览: 86
以下是一个将3x3二维数组转置的C语言函数:
```c
void transpose(int arr[3][3]) {
int i, j, temp;
for(i = 0; i < 3; i++) {
for(j = i+1; j < 3; j++) {
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
```
这个函数接受一个3x3的整型二维数组作为参数,并将其转置。在转置中,我们使用了一个临时变量来交换数组元素。
相关问题
c语言,将给定的二维数组(3*2)转置,即行列互换
在C语言中,将一个3x2的二维数组转置,就是交换它的行和列。首先,你需要创建一个新的3x2数组来存储转置后的结果。下面是一个简单的示例,假设原始数组叫做`arr`,它有3行2列:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 2
void transpose(int arr[ROWS][COLS], int transposed[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
// 交换arr[i][j]和transposed[j][i]
transposed[j][i] = arr[i][j];
}
}
}
int main() {
int original[ROWS][COLS] = { {1, 2}, {3, 4}, {5, 6} }; // 假设这是你的输入数组
int transposed[ROWS][COLS]; // 新建用于存放转置后的数据
transpose(original, transposed);
// 打印转置后的数组
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", transposed[i][j]);
}
printf("\n");
}
return 0;
}
```
运行这个程序,你会得到转置后的3x2数组。注意,原数组`original`并没有改变,因为它不是函数的内部变量。
用c语言写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
在C语言中,你可以定义一个函数来实现3x3二维数组的转置。这里是一个示例:
```c
#include <stdio.h>
void transpose(int arr[3][3]) {
int i, j, temp;
for (i = 0; i < 3; i++) {
for (j = i; j < 3; j++) {
temp = arr[i][j];
arr[i][j] = arr[j][i]; // 交换当前行和列的元素
arr[j][i] = temp;
}
}
}
int main() {
int a[3][3], i, j;
printf("输入3x3整型数组: \n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
scanf_s("%d", &a[i][j]);
}
}
transpose(a);
printf("转置后的数组:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d", a[i][j]);
if (j != 2) printf(", "); // 按逗号分隔元素
}
printf("\n"); // 每行结束后换行
}
return 0;
}
```
这个`transpose`函数通过两层循环遍历数组,每次迭代都将当前行的元素与对应列的元素交换位置。在`main`函数中,我们先读取原始数组,然后调用`transpose`函数,最后打印出转置后的结果。
阅读全文