#include "stdio.h" #define N 10 void reverse(int *p, int a, int b) { /***** Begin *****/ /***** End *****/ } int main() { int a[N], i, begin, end; for (i=0; i<N; i++) scanf("%d",&a[i]); scanf("%d%d",&begin,&end); reverse(a, begin, end); for (i=0; i<N; i++) printf("%d ",a[i]); printf("\n"); return 0; }
时间: 2023-08-02 22:10:43 浏览: 67
这段代码中定义了一个名为 `reverse()` 的函数,用于将数组 `p` 中下标从 `a` 到 `b` 的元素按逆序重新放置。在 `reverse()` 函数中,我们可以使用以下代码实现这个功能:
```c
void reverse(int *p, int a, int b) {
int temp;
while (a < b) {
temp = *(p + a);
*(p + a) = *(p + b);
*(p + b) = temp;
a++;
b--;
}
}
```
在 `reverse()` 函数中,我们使用了指针来访问数组元素,其中 `*(p + i)` 表示数组 `p` 中下标为 `i` 的元素。我们使用了一个 while 循环来不断交换 `a` 和 `b` 下标位置上的元素,直到 `a` 大于等于 `b`,即完成了数组中指定范围内元素的逆序操作。
在 `main()` 函数中,我们首先定义了一个大小为 `N` 的数组 `a`,并通过循环和 `scanf()` 函数从标准输入中读入数组的元素。接着,我们从标准输入中读入起始下标 `begin` 和结束下标 `end`,并调用 `reverse()` 函数对数组中指定范围内的元素进行逆序操作。最后,我们通过循环和 `printf()` 函数将逆序操作后的数组元素输出到标准输出中。
阅读全文