用C语言编写函数交换数组 a 和数组 b 中的对应元素,要考虑到数组 a 和数组 b 中数组元素的个数不同
时间: 2024-03-15 12:46:49 浏览: 74
以下是用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;
}
```
阅读全文