利用函数和指针编写一个程序,在main()函数中建立并输入10个元素的一个数组,在swap_five(int*p)函数中实现前5个元素和后5个元素之间的对调
时间: 2024-02-05 15:13:13 浏览: 39
以下是实现代码:
```c
#include <stdio.h>
void swap_five(int* p);
int main() {
int arr[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; ++i) {
scanf("%d", &arr[i]);
}
swap_five(arr);
printf("交换后的数组为:\n");
for (int i = 0; i < 10; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void swap_five(int* p) {
for (int i = 0; i < 5; ++i) {
int temp = *(p + i);
*(p + i) = *(p + i + 5);
*(p + i + 5) = temp;
}
}
```
在以上代码中,`swap_five()` 函数接受一个指向数组首元素的指针 `p`,并使用循环和指针操作实现了前5个元素和后5个元素之间的对调。在 `main()` 函数中,首先建立并输入了10个整数的数组,然后调用 `swap_five()` 函数对数组进行操作,最后输出操作后的数组。
相关问题
编写程序定义swap函数,利用指针实现两个变量值的交换。并举一个实际例子
好的,以下是swap函数的定义及示例:
```c++
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 2, y = 5;
printf("Before swap: x = %d, y = %d\n", x, y);
swap(&x, &y);
printf("After swap: x = %d, y = %d\n", x, y);
return 0;
}
```
运行结果为:
```
Before swap: x = 2, y = 5
After swap: x = 5, y = 2
```
在这个例子中,我们定义了一个名为swap的函数,它接受两个指向int类型变量的指针作为参数。函数内部通过指针来交换两个变量的值,最终实现了两个变量的交换。
在main函数中,我们定义了两个int类型变量x和y,并将它们的值分别设置为2和5。然后调用swap函数,并将x和y的地址作为参数传递给它。函数执行完毕后,x和y的值被成功交换。
C语言1编写一个使用指针的c函数,交换数组a和数 组b中的对应元素
可以这样编写一个使用指针的C函数,交换数组a和数组b中的对应元素:
```c
void swap_arrays(int* a, int* b, int size) {
for (int i = 0; i < size; i++) {
int temp = *(a + i);
*(a + i) = *(b + i);
*(b + i) = temp;
}
}
```
这个函数接受两个指向整数数组的指针 a 和 b,以及数组的大小 size。在函数内部,我们使用一个循环迭代数组中的每个元素,并使用指针交换 a 和 b 数组中对应位置的元素。具体而言,我们首先将 a[i] 的值存储在 temp 变量中,然后将 b[i] 的值存储在 a[i] 中,最后将 temp 的值存储在 b[i] 中,从而完成交换。
可以在主函数中调用这个函数,例如:
```c
int main() {
int a[5] = {1, 2, 3, 4, 5};
int b[5] = {6, 7, 8, 9, 10};
swap_arrays(a, b, 5);
// 打印交换后的结果
printf("a: ");
for (int i = 0; i < 5; i++) {
printf("%d ", a[i]);
}
printf("\n");
printf("b: ");
for (int i = 0; i < 5; i++) {
printf("%d ", b[i]);
}
printf("\n");
return 0;
}
```
这个程序将输出:
```
a: 6 7 8 9 10
b: 1 2 3 4 5
```