用c语言实现将数组中连续的若干个元素翻转。将数组a从第bgn个元素到第end个元素进行翻转。输入样例:5。1 2 3 4 5。1 3。输出样例:1 4 3 2 5
时间: 2024-02-18 07:04:03 浏览: 26
好的,我来为您解答这个问题。
以下是实现将数组中连续的若干个元素翻转的 C 代码:
```c
#include <stdio.h>
void reverse(int a[], int bgn, int end) {
int i, j;
for (i = bgn, j = end; i < j; i++, j--) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
int main() {
int n, i, bgn, end;
int a[100];
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
scanf("%d %d", &bgn, &end);
reverse(a, bgn - 1, end - 1);
for (i = 0; i < n; i++)
printf("%d ", a[i]);
return 0;
}
```
在这个程序中,我们先定义了一个函数 `reverse`,用于将数组 `a` 中从 `bgn` 到 `end` 的元素翻转。具体实现中,我们使用了两个指针 `i` 和 `j`,分别指向要翻转的区间的起始和结尾。然后用一个循环交换 `a[i]` 和 `a[j]` 的值,直到 `i` 和 `j` 相遇。
在 `main` 函数中,我们先读入数组 `a` 和要翻转的区间的起始和结尾。然后调用 `reverse` 函数对数组进行翻转。最后输出翻转后的数组。
希望这个代码能够帮到您!