编写程序,用指针实现以下功能,交换数组a和数组b中的对应元素,要考虑到数组a和数组b中数据元素的个数不同。
时间: 2023-04-20 10:04:27 浏览: 171
可以先输入数组a和数组b的元素个数,然后分别动态申请内存空间,再输入数组a和数组b的元素值。最后通过指针交换数组a和数组b中的对应元素即可。具体实现可以参考以下代码:
```
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, m; // 数组a和数组b的元素个数
int *a, *b; // 数组a和数组b的指针
int i, j, temp;
printf("请输入数组a的元素个数:");
scanf("%d", &n);
a = (int*)malloc(n * sizeof(int)); // 动态申请内存空间
printf("请输入数组a的元素值:");
for (i = 0; i < n; i++) {
scanf("%d", a + i); // 输入数组a的元素值
}
printf("请输入数组b的元素个数:");
scanf("%d", &m);
b = (int*)malloc(m * sizeof(int)); // 动态申请内存空间
printf("请输入数组b的元素值:");
for (i = 0; i < m; i++) {
scanf("%d", b + i); // 输入数组b的元素值
}
// 交换数组a和数组b中的对应元素
for (i = 0; i < n && i < m; i++) {
temp = *(a + i);
*(a + i) = *(b + i);
*(b + i) = temp;
}
// 输出交换后的数组a和数组b
printf("交换后的数组a:");
for (i = 0; i < n; i++) {
printf("%d ", *(a + i));
}
printf("\n");
printf("交换后的数组b:");
for (i = 0; i < m; i++) {
printf("%d ", *(b + i));
}
printf("\n");
free(a); // 释放内存空间
free(b);
return 0;
}
```
阅读全文