c语言编写函数交换数组a与b
时间: 2024-02-01 10:15:01 浏览: 68
你可以使用以下程序来实现:
```c
void swapArray(int *a, int *b, int size) {
int temp;
for(int i=0; i<size; i++){
temp = a[i];
a[i] = b[i];
b[i] = temp;
}
}
```
其中,`a`和`b`分别为要交换的两个数组的指针,`size`为数组的大小。该函数使用一个循环来遍历两个数组,并通过一个中间变量`temp`来交换数组中的元素。
相关问题
用C语言编写函数交换数组 a 和数组 b 中的对应元素,要考虑到数组 a 和数组 b 中数组元素的个数不同
以下是用C语言编写的函数,可以交换数组 a 和数组 b 中的对应元素,即使数组 a 和数组 b 中数组元素的个数不同:
```c
void swapArrays(int a[], int a_size, int b[], int b_size) {
int i, j;
int temp;
// 找到较小的数组长度
int min_size = a_size < b_size ? a_size : b_size;
// 交换对应位置的元素
for (i = 0; i < min_size; i++) {
temp = a[i];
a[i] = b[i];
b[i] = temp;
}
// 如果数组a的长度大于数组b的长度,将多余的元素移动到数组b的末尾
if (a_size > b_size) {
for (j = min_size; j < a_size; j++) {
b[j] = a[j];
}
}
// 如果数组b的长度大于数组a的长度,将多余的元素移动到数组a的末尾
if (b_size > a_size) {
for (j = min_size; j < b_size; j++) {
a[j] = b[j];
}
}
}
```
使用示例:
```c
int main() {
int a[] = {1, 2, 3, 4, 5};
int a_size = sizeof(a) / sizeof(a[0]);
int b[] = {6, 7, 8};
int b_size = sizeof(b) / sizeof(b[0]);
swapArrays(a, a_size, b, b_size);
printf("Array a after swap: ");
for (int i = 0; i < a_size; i++) {
printf("%d ", a[i]);
}
printf("\n");
printf("Array b after swap: ");
for (int i = 0; i < b_size; i++) {
printf("%d ", b[i]);
}
printf("\n");
return 0;
}
```
c语言用函数实现数组倒置
在C语言中,你可以通过编写一个函数来实现数组的倒置。数组倒置意味着将数组的元素从头到尾或者从尾到头重新排列。下面是一个简单的例子,展示了如何通过函数`reverse_array`来完成这个任务:
```c
#include <stdio.h>
// 函数声明,接收指向数组首元素的指针、数组长度作为参数
void reverse_array(int* arr, int length);
int main() {
int my_array[5] = {1, 2, 3, 4, 5}; // 初始化一个示例数组
printf("Original array: ");
for (int i = 0; i < sizeof(my_array) / sizeof(my_array[0]); i++) {
printf("%d ", my_array[i]);
}
printf("\n");
// 反转数组
reverse_array(my_array, sizeof(my_array) / sizeof(my_array[0]));
printf("Reversed array: ");
for (int i = 0; i < sizeof(my_array) / sizeof(my_array[0]); i++) {
printf("%d ", my_array[i]);
}
printf("\n");
return 0;
}
// 实现反转数组的函数
void reverse_array(int* arr, int length) {
int start = 0;
int end = length - 1;
while (start < end) {
// 交换开始和结束位置的元素
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 移动指针向中间靠拢
start++;
end--;
}
}
```
当你运行这个程序,原始数组会被反向,比如原数组 `{1, 2, 3, 4, 5}` 将会变成 `{5, 4, 3, 2, 1}`。
阅读全文