C语言指针实现数组折半交换
C语言指针实现数组折半交换
题目分析:
折半交换指的是将数组的前一半和后一半进行交换,可以利用指针实现。
算法流程:
- 计算数组的中间位置mid。
- 利用指针将前一半和后一半进行交换。
- 输出交换后的结果。
C语言代码:
#include <stdio.h>
void fun(int *p, int n) {
int mid = n / 2;
int temp;
for (int i = 0; i < mid; i++) {
temp = *(p + i);
*(p + i) = *(p + mid + i);
*(p + mid + i) = temp;
}
}
int main() {
int n, a[10];
int *p = a;
printf("请输入数组长度n:");
scanf("%d", &n);
printf("请输入n个数组元素:");
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
fun(p, n);
printf("交换后的结果:\n");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
输入形式:
n及n个数组元素
输出形式:
折半交换的结果
样例输入:
5
1 2 3 4 5
样例输出:
5 4 3 2 1
原文地址: https://www.cveoy.top/t/topic/oduQ 著作权归作者所有。请勿转载和采集!