C语言指针实现数组折半交换

题目分析:

折半交换指的是将数组的前一半和后一半进行交换,可以利用指针实现。

算法流程:

  1. 计算数组的中间位置mid。
  2. 利用指针将前一半和后一半进行交换。
  3. 输出交换后的结果。

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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录