编写程序,用指针实现以下功能,交换数组a和数组b中的对应元素,要考虑 到数组a和数组b中数据元素的个数不同。
时间: 2024-09-06 09:02:26 浏览: 91
要使用指针实现交换两个数组中对应元素的功能,首先需要确定两个数组中元素的数量,然后在它们各自的元素个数范围内进行交换。以下是一个C语言程序的示例,实现了这个功能:
```c
#include <stdio.h>
// 交换两个数组中对应元素的函数
void swapArrays(int *a, int *b, int size) {
for (int i = 0; i < size; i++) {
int temp = *(a + i);
*(a + i) = *(b + i);
*(b + i) = temp;
}
}
int main() {
int a[] = {1, 2, 3, 4, 5}; // 示例数组a
int b[] = {10, 20, 30, 40}; // 示例数组b
int sizeA = sizeof(a) / sizeof(a[0]); // 计算数组a的元素个数
int sizeB = sizeof(b) / sizeof(b[0]); // 计算数组b的元素个数
// 打印原始数组
printf("Array a: ");
for (int i = 0; i < sizeA; i++) {
printf("%d ", a[i]);
}
printf("\nArray b: ");
for (int i = 0; i < sizeB; i++) {
printf("%d ", b[i]);
}
printf("\n");
// 调用函数交换对应元素
swapArrays(a, b, (sizeA < sizeB ? sizeA : sizeB)); // 使用较小数组的元素个数来交换
// 打印交换后的数组
printf("After swapping:\nArray a: ");
for (int i = 0; i < sizeA; i++) {
printf("%d ", a[i]);
}
printf("\nArray b: ");
for (int i = 0; i < sizeB; i++) {
printf("%d ", b[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,`swapArrays`函数接受两个指向数组的指针和一个表示数组大小的整数。它通过循环交换指针所指向的数组中的对应元素。在`main`函数中,我们计算了两个数组的元素个数,并确保交换时使用较小数组的大小来避免越界访问。
阅读全文
相关推荐

















