C语言写一个函数,使给定的一个3×3的二维整形数组转置。
时间: 2023-10-23 12:14:49 浏览: 109
可以通过以下代码实现给定的一个3×3的二维整形数组转置:
```c
void transpose(int arr[][3]) {
int temp;
for (int i = 0; i < 3; i++) {
for (int j = i; j < 3; j++) {
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
```
这个函数接受一个3×3的二维整形数组作为参数,并将其转置。它使用一个临时变量来交换数组中对应位置的元素,从而实现转置。在这个函数中,我们使用两个嵌套的for循环,分别遍历数组的行和列。在内部循环中,我们将对角线上方的元素与对角线下方的元素交换。最终,数组中的元素将被转置。
相关问题
c语言写一个函数使给定 的一个3× 3的二维整数组转置
好的,以下是 C 语言的代码实现:
```
void transpose(int matrix[][3], int rows) {
int i, j, temp;
for(i=0; i<rows; i++) {
for(j=i+1; j<rows; j++) {
temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
```
你可以调用这个函数,将给定的 3× 3 的二维整数组转置,例如:
```c
int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
transpose(matrix, 3); // 调用转置函数
```
转置后的结果为:
```
1 4 7
2 5 8
3 6 9
```
用C语言写一个函数,使给定的二维数组(3*3)转置
以下是用C语言实现给定二维数组(3*3)转置的函数:
```c
#include <stdio.h>
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;
}
}
}
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j;
printf("Original Matrix:\n");
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
transpose(arr);
printf("Transposed Matrix:\n");
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果如下:
```
Original Matrix:
1 2 3
4 5 6
7 8 9
Transposed Matrix:
1 4 7
2 5 8
3 6 9
```
在 `transpose` 函数中,我们使用两个循环来遍历矩阵,然后交换每个元素的行和列。在主函数中,我们先输出原始矩阵,然后调用 `transpose` 函数来转置它,最后输出转置后的矩阵。
阅读全文