C语言交换一个二维数组中的两个元素
时间: 2023-06-17 18:07:46 浏览: 130
假设要交换的两个元素在二维数组`arr`中分别为`(x1, y1)`和`(x2, y2)`,可以按照以下步骤进行交换:
```c
int temp = arr[x1][y1];
arr[x1][y1] = arr[x2][y2];
arr[x2][y2] = temp;
```
其中,`temp`为一个临时变量,用于存储`arr[x1][y1]`的值,以便在交换时不会丢失该值。
相关问题
用c语言写一个二维数组排序
好的,以下是用C语言写一个二维数组排序的示例代码:
```c
#include <stdio.h>
// 定义行列数
#define ROWS 3
#define COLS 4
// 定义函数,用于打印数组
void printArray(int arr[ROWS][COLS]) {
for(int i = 0; i < ROWS; i++) {
for(int j = 0; j < COLS; j++) {
printf("%d\t", arr[i][j]);
}
printf("\n");
}
}
// 定义函数,用于交换两个元素的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 定义函数,用于对数组进行冒泡排序
void bubbleSort(int arr[ROWS][COLS]) {
for(int i = 0; i < ROWS; i++) {
for(int j = 0; j < COLS - 1; j++) {
for(int k = 0; k < COLS - j - 1; k++) {
if(arr[i][k] > arr[i][k+1]) {
swap(&arr[i][k], &arr[i][k+1]);
}
}
}
}
}
int main() {
// 定义二维数组
int arr[ROWS][COLS] = {
{3, 1, 4, 2},
{6, 5, 8, 7},
{9, 10, 11, 12}
};
// 打印排序前的数组
printf("排序前的数组:\n");
printArray(arr);
// 对数组进行冒泡排序
bubbleSort(arr);
// 打印排序后的数组
printf("排序后的数组:\n");
printArray(arr);
return 0;
}
```
这个示例程序定义了一个3行4列的二维数组,并且定义了三个函数:`printArray`函数用于打印数组,`swap`函数用于交换两个元素的值,`bubbleSort`函数用于对数组进行冒泡排序。最后在主函数中调用这些函数来打印排序前的数组、对数组进行排序并打印排序后的数组。
用c语言将一个二维数组a的行和列元素互换,存到另一个二维数组b中,并以矩阵形式输出数组b。
好的,以下是用C语言将一个二维数组a的行和列元素互换,存到另一个二维数组b中,并以矩阵形式输出数组b的代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main() {
int a[ROWS][COLS], b[COLS][ROWS];
int i, j;
// 循环赋值
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
a[i][j] = i * COLS + j + 1;
}
}
// 交换行和列
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
b[j][i] = a[i][j];
}
}
// 输出数组b的矩阵形式
for (i = 0; i < COLS; i++) {
for (j = 0; j < ROWS; j++) {
printf("%d ", b[i][j]);
}
printf("\n");
}
return 0;
}
```
代码中,我们用`#define`定义了两个二维数组的行数和列数。然后用嵌套的循环对二维数组a进行赋值。接着,我们用另一个嵌套的循环将a数组的行和列元素互换,存到二维数组b中。最后,我们再用循环输出数组b的矩阵形式。
注意,在输出b数组的矩阵形式时,要将b数组的行数和列数互换。